Decompiled source of WFRus v0.0.8

GDWeave/mods/WFRus/WFRus.dll

Decompiled 3 months ago
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.Versioning;
using System.Text.Json.Serialization;
using GDWeave;
using GDWeave.Godot;
using GDWeave.Godot.Variants;
using GDWeave.Modding;
using Serilog;
using WFRus.modifies;
using WFRus.modifies.globals;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(/*Could not decode attribute arguments.*/)]
[assembly: TargetFramework(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]
[assembly: AssemblyCompany("WFRus")]
[assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0.0+e2bf6bc0a0a24071cbd060ac65e40b5b18d1c0ba")]
[assembly: AssemblyProduct("WFRus")]
[assembly: AssemblyTitle("WFRus")]
[assembly: AssemblyVersion("1.0.0.0")]
[module: RefSafetyRules(11)]
namespace WFRus
{
	public class Config
	{
		[JsonInclude]
		public string mainmenuLogoPath = Directory.GetCurrentDirectory() + "/GDWeave/mods/WFRus/mainmenuLogo.png";

		[JsonInclude]
		public string splashLamePath = Directory.GetCurrentDirectory() + "/GDWeave/mods/WFRus/splashLame.png";

		[JsonInclude]
		public string splashGodotPath = Directory.GetCurrentDirectory() + "/GDWeave/mods/WFRus/splashGodot.png";
	}
	public static class Helpers
	{
		public static global::System.Collections.Generic.IEnumerable<Token> SetFont(string node, uint indents = 0u)
		{
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Expected O, but got Unknown
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0025: Expected O, but got Unknown
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Expected O, but got Unknown
			//IL_003f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0049: Expected O, but got Unknown
			//IL_0054: Unknown result type (might be due to invalid IL or missing references)
			//IL_005e: Expected O, but got Unknown
			//IL_0063: Unknown result type (might be due to invalid IL or missing references)
			//IL_006d: Expected O, but got Unknown
			//IL_0068: Unknown result type (might be due to invalid IL or missing references)
			//IL_0072: Expected O, but got Unknown
			//IL_007d: Unknown result type (might be due to invalid IL or missing references)
			//IL_0087: Expected O, but got Unknown
			//IL_0092: Unknown result type (might be due to invalid IL or missing references)
			//IL_009c: Expected O, but got Unknown
			//IL_00a1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00ab: Expected O, but got Unknown
			//IL_00b6: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c0: Expected O, but got Unknown
			//IL_00c5: Unknown result type (might be due to invalid IL or missing references)
			//IL_00cf: Expected O, but got Unknown
			//IL_00ca: Unknown result type (might be due to invalid IL or missing references)
			//IL_00d4: Expected O, but got Unknown
			//IL_00df: Unknown result type (might be due to invalid IL or missing references)
			//IL_00e9: Expected O, but got Unknown
			//IL_00f1: Unknown result type (might be due to invalid IL or missing references)
			//IL_00fb: Expected O, but got Unknown
			//IL_0106: Unknown result type (might be due to invalid IL or missing references)
			//IL_0110: Expected O, but got Unknown
			//IL_0115: Unknown result type (might be due to invalid IL or missing references)
			//IL_011f: Expected O, but got Unknown
			//IL_011a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0124: Expected O, but got Unknown
			//IL_012f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0139: Expected O, but got Unknown
			//IL_0144: Unknown result type (might be due to invalid IL or missing references)
			//IL_014e: Expected O, but got Unknown
			//IL_0156: Unknown result type (might be due to invalid IL or missing references)
			//IL_0160: Expected O, but got Unknown
			return Enumerable.Append<Token>(Enumerable.Append<Token>(Enumerable.Append<Token>(Enumerable.Append<Token>(Enumerable.Append<Token>(Enumerable.Append<Token>(Enumerable.Append<Token>(Enumerable.Append<Token>(Enumerable.Append<Token>(Enumerable.Append<Token>(Enumerable.Append<Token>(Enumerable.Append<Token>(Enumerable.Append<Token>(Enumerable.Append<Token>(Enumerable.Append<Token>(Enumerable.Append<Token>(Enumerable.Append<Token>(Enumerable.Append<Token>((global::System.Collections.Generic.IEnumerable<Token>)global::System.Array.Empty<Token>(), new Token((TokenType)87, (uint?)null)), (Token)new IdentifierToken(node)), new Token((TokenType)84, (uint?)null)), (Token)new IdentifierToken("get")), new Token((TokenType)80, (uint?)null)), (Token)new ConstantToken((Variant)new StringVariant("custom_fonts/font"))), new Token((TokenType)81, (uint?)null)), new Token((TokenType)84, (uint?)null)), (Token)new IdentifierToken("set")), new Token((TokenType)80, (uint?)null)), (Token)new ConstantToken((Variant)new StringVariant("font_data"))), new Token((TokenType)82, (uint?)null)), new Token((TokenType)5, (uint?)76u)), new Token((TokenType)80, (uint?)null)), (Token)new ConstantToken((Variant)new StringVariant("res://mods/WFRus/Cyrillic/accidCyr.ttf"))), new Token((TokenType)81, (uint?)null)), new Token((TokenType)81, (uint?)null)), new Token((TokenType)89, (uint?)indents));
		}

		public static global::System.Collections.Generic.IEnumerable<Token> SetText(string node, string param, string str, uint indents = 0u)
		{
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Expected O, but got Unknown
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0025: Expected O, but got Unknown
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Expected O, but got Unknown
			//IL_003b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0045: Expected O, but got Unknown
			//IL_0050: Unknown result type (might be due to invalid IL or missing references)
			//IL_005a: Expected O, but got Unknown
			//IL_005b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0065: Expected O, but got Unknown
			//IL_0060: Unknown result type (might be due to invalid IL or missing references)
			//IL_006a: Expected O, but got Unknown
			//IL_0072: Unknown result type (might be due to invalid IL or missing references)
			//IL_007c: Expected O, but got Unknown
			return Enumerable.Append<Token>(Enumerable.Append<Token>(Enumerable.Append<Token>(Enumerable.Append<Token>(Enumerable.Append<Token>(Enumerable.Append<Token>(Enumerable.Append<Token>((global::System.Collections.Generic.IEnumerable<Token>)global::System.Array.Empty<Token>(), new Token((TokenType)87, (uint?)null)), (Token)new IdentifierToken(node)), new Token((TokenType)84, (uint?)null)), (Token)new IdentifierToken(param)), new Token((TokenType)23, (uint?)null)), (Token)new ConstantToken((Variant)new StringVariant(str))), new Token((TokenType)89, (uint?)indents));
		}

		public static global::System.Collections.Generic.IEnumerable<Token> LoadExtImage(string node, string path)
		{
			return Enumerable.Concat<Token>(Enumerable.Concat<Token>(Enumerable.Concat<Token>(Enumerable.Concat<Token>(Enumerable.Concat<Token>(Enumerable.Concat<Token>(Enumerable.Concat<Token>((global::System.Collections.Generic.IEnumerable<Token>)global::System.Array.Empty<Token>(), ScriptTokenizer.Tokenize("var img" + node + " = Image.new()", 1u)), ScriptTokenizer.Tokenize($"var result{node} = img{node}.load(\"{path}\")", 1u)), ScriptTokenizer.Tokenize("if result" + node + " == OK:", 1u)), ScriptTokenizer.Tokenize("var texture" + node + " = ImageTexture.new()", 2u)), ScriptTokenizer.Tokenize($"texture{node}.create_from_image(img{node})", 2u)), ScriptTokenizer.Tokenize("texture" + node + ".flags = 0", 2u)), ScriptTokenizer.Tokenize("$" + node + ".texture = texture" + node, 2u));
		}
	}
	public class WFRusMod : IMod, global::System.IDisposable
	{
		public Config Config;

		public ILogger Logger;

		public WFRusMod(IModInterface modInterface)
		{
			Config = modInterface.ReadConfig<Config>();
			Logger = modInterface.Logger;
			modInterface.RegisterScriptMod((IScriptMod)(object)new Voice());
			modInterface.RegisterScriptMod((IScriptMod)(object)new PlayerVoice());
			modInterface.RegisterScriptMod((IScriptMod)(object)new GlobalsAddMaps());
			modInterface.RegisterScriptMod((IScriptMod)(object)new GlobalsUseMaps());
			modInterface.RegisterScriptMod((IScriptMod)(object)new SplashScreen(this));
			modInterface.RegisterScriptMod((IScriptMod)(object)new MainMenu(this));
			modInterface.RegisterScriptMod((IScriptMod)(object)new OptionsMenu());
			modInterface.RegisterScriptMod((IScriptMod)(object)new SpeechBubble());
			modInterface.RegisterScriptMod((IScriptMod)(object)new LevelBubble());
			Logger.Information("[WFRusCS] C# Mod initialized!");
		}

		public void Dispose()
		{
		}
	}
}
namespace WFRus.modifies
{
	public class LevelBubble : IScriptMod
	{
		[CompilerGenerated]
		private sealed class <Modify>d__1 : global::System.Collections.Generic.IEnumerable<Token>, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerator<Token>, global::System.Collections.IEnumerator, global::System.IDisposable
		{
			private int <>1__state;

			private Token <>2__current;

			private int <>l__initialThreadId;

			private global::System.Collections.Generic.IEnumerable<Token> tokens;

			public global::System.Collections.Generic.IEnumerable<Token> <>3__tokens;

			private MultiTokenWaiter <waiter>5__2;

			private global::System.Collections.Generic.IEnumerator<Token> <>7__wrap2;

			private global::System.Collections.Generic.IEnumerator<Token> <>7__wrap3;

			Token global::System.Collections.Generic.IEnumerator<Token>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object global::System.Collections.IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <Modify>d__1(int <>1__state)
			{
				this.<>1__state = <>1__state;
				<>l__initialThreadId = Environment.CurrentManagedThreadId;
			}

			[DebuggerHidden]
			void global::System.IDisposable.Dispose()
			{
				int num = <>1__state;
				if ((uint)(num - -4) > 1u && (uint)(num - 1) > 1u)
				{
					return;
				}
				try
				{
					if (num != -4 && num != 1)
					{
						return;
					}
					try
					{
					}
					finally
					{
						<>m__Finally2();
					}
				}
				finally
				{
					<>m__Finally1();
				}
			}

			private bool MoveNext()
			{
				//IL_0074: Unknown result type (might be due to invalid IL or missing references)
				//IL_007e: Expected O, but got Unknown
				try
				{
					switch (<>1__state)
					{
					default:
						return false;
					case 0:
						<>1__state = -1;
						<waiter>5__2 = new MultiTokenWaiter(new Func<Token, bool>[2]
						{
							delegate(Token t)
							{
								IdentifierToken val = (IdentifierToken)(object)((t is IdentifierToken) ? t : null);
								return val != null && val.Name == "time";
							},
							(Token t) => (int)t.Type == 89
						}, false, true);
						<>7__wrap2 = tokens.GetEnumerator();
						<>1__state = -3;
						goto IL_0169;
					case 1:
						<>1__state = -4;
						goto IL_0133;
					case 2:
						{
							<>1__state = -3;
							goto IL_0169;
						}
						IL_0169:
						if (((global::System.Collections.IEnumerator)<>7__wrap2).MoveNext())
						{
							Token current = <>7__wrap2.Current;
							if (<waiter>5__2.Check(current))
							{
								global::System.Collections.Generic.IEnumerable<Token> enumerable = global::System.Array.Empty<Token>();
								enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("func _ready():", 0u));
								enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("\t$RichTextLabel.visible_characters = 20", 1u));
								enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("\t$RichTextLabel.bbcode_text = \"[center][wave amp=80.0 freq=5.0 connected=1]НОВЫЙ УРОВЕНЬ!\" ", 1u));
								<>7__wrap3 = enumerable.GetEnumerator();
								<>1__state = -4;
								goto IL_0133;
							}
							<>2__current = current;
							<>1__state = 2;
							return true;
						}
						<>m__Finally1();
						<>7__wrap2 = null;
						return false;
						IL_0133:
						if (((global::System.Collections.IEnumerator)<>7__wrap3).MoveNext())
						{
							Token current2 = <>7__wrap3.Current;
							<>2__current = current2;
							<>1__state = 1;
							return true;
						}
						<>m__Finally2();
						<>7__wrap3 = null;
						goto IL_0169;
					}
				}
				catch
				{
					//try-fault
					((global::System.IDisposable)this).Dispose();
					throw;
				}
			}

			bool global::System.Collections.IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			private void <>m__Finally1()
			{
				<>1__state = -1;
				if (<>7__wrap2 != null)
				{
					((global::System.IDisposable)<>7__wrap2).Dispose();
				}
			}

			private void <>m__Finally2()
			{
				<>1__state = -3;
				if (<>7__wrap3 != null)
				{
					((global::System.IDisposable)<>7__wrap3).Dispose();
				}
			}

			[DebuggerHidden]
			void global::System.Collections.IEnumerator.Reset()
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				throw new NotSupportedException();
			}

			[DebuggerHidden]
			global::System.Collections.Generic.IEnumerator<Token> global::System.Collections.Generic.IEnumerable<Token>.GetEnumerator()
			{
				<Modify>d__1 <Modify>d__;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					<Modify>d__ = this;
				}
				else
				{
					<Modify>d__ = new <Modify>d__1(0);
				}
				<Modify>d__.tokens = <>3__tokens;
				return <Modify>d__;
			}

			[DebuggerHidden]
			global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator()
			{
				return (global::System.Collections.IEnumerator)((global::System.Collections.Generic.IEnumerable<Token>)this).GetEnumerator();
			}
		}

		public bool ShouldRun(string path)
		{
			return path == "res://Scenes/Entities/Player/SpeechBubble/level_bubble.gdc";
		}

		[IteratorStateMachine(typeof(<Modify>d__1))]
		public global::System.Collections.Generic.IEnumerable<Token> Modify(string path, global::System.Collections.Generic.IEnumerable<Token> tokens)
		{
			MultiTokenWaiter waiter = new MultiTokenWaiter(new Func<Token, bool>[2]
			{
				delegate(Token t)
				{
					IdentifierToken val = (IdentifierToken)(object)((t is IdentifierToken) ? t : null);
					return val != null && val.Name == "time";
				},
				(Token t) => (int)t.Type == 89
			}, false, true);
			global::System.Collections.Generic.IEnumerator<Token> enumerator = tokens.GetEnumerator();
			try
			{
				while (((global::System.Collections.IEnumerator)enumerator).MoveNext())
				{
					Token current = enumerator.Current;
					if (waiter.Check(current))
					{
						global::System.Collections.Generic.IEnumerable<Token> enumerable = global::System.Array.Empty<Token>();
						enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("func _ready():", 0u));
						enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("\t$RichTextLabel.visible_characters = 20", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("\t$RichTextLabel.bbcode_text = \"[center][wave amp=80.0 freq=5.0 connected=1]НОВЫЙ УРОВЕНЬ!\" ", 1u));
						global::System.Collections.Generic.IEnumerator<Token> enumerator2 = enumerable.GetEnumerator();
						try
						{
							while (((global::System.Collections.IEnumerator)enumerator2).MoveNext())
							{
								yield return enumerator2.Current;
							}
						}
						finally
						{
							((global::System.IDisposable)enumerator2)?.Dispose();
						}
					}
					else
					{
						yield return current;
					}
				}
			}
			finally
			{
				((global::System.IDisposable)enumerator)?.Dispose();
			}
		}
	}
	public class MainMenu : IScriptMod
	{
		[CompilerGenerated]
		private sealed class <Modify>d__3 : global::System.Collections.Generic.IEnumerable<Token>, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerator<Token>, global::System.Collections.IEnumerator, global::System.IDisposable
		{
			private int <>1__state;

			private Token <>2__current;

			private int <>l__initialThreadId;

			private global::System.Collections.Generic.IEnumerable<Token> tokens;

			public global::System.Collections.Generic.IEnumerable<Token> <>3__tokens;

			public MainMenu <>4__this;

			private MultiTokenWaiter <waiter>5__2;

			private global::System.Collections.Generic.IEnumerator<Token> <>7__wrap2;

			private global::System.Collections.Generic.IEnumerator<Token> <>7__wrap3;

			Token global::System.Collections.Generic.IEnumerator<Token>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object global::System.Collections.IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <Modify>d__3(int <>1__state)
			{
				this.<>1__state = <>1__state;
				<>l__initialThreadId = Environment.CurrentManagedThreadId;
			}

			[DebuggerHidden]
			void global::System.IDisposable.Dispose()
			{
				int num = <>1__state;
				if ((uint)(num - -4) > 1u && (uint)(num - 1) > 3u)
				{
					return;
				}
				try
				{
					if (num != -4 && num != 2)
					{
						return;
					}
					try
					{
					}
					finally
					{
						<>m__Finally2();
					}
				}
				finally
				{
					<>m__Finally1();
				}
			}

			private bool MoveNext()
			{
				//IL_0083: Unknown result type (might be due to invalid IL or missing references)
				//IL_008d: Expected O, but got Unknown
				//IL_0392: Unknown result type (might be due to invalid IL or missing references)
				//IL_039c: Expected O, but got Unknown
				try
				{
					int num = <>1__state;
					MainMenu mainMenu = <>4__this;
					switch (num)
					{
					default:
						return false;
					case 0:
						<>1__state = -1;
						<waiter>5__2 = new MultiTokenWaiter(new Func<Token, bool>[2]
						{
							delegate(Token t)
							{
								IdentifierToken val = (IdentifierToken)(object)((t is IdentifierToken) ? t : null);
								return val != null && val.Name == "_ready";
							},
							(Token t) => (int)t.Type == 89
						}, false, true);
						<>7__wrap2 = tokens.GetEnumerator();
						<>1__state = -3;
						break;
					case 1:
					{
						<>1__state = -3;
						global::System.Collections.Generic.IEnumerable<Token> enumerable = global::System.Array.Empty<Token>();
						mainMenu.<mod>P.Logger.Information("Trying to load mainmenu logo from " + mainMenu.<mod>P.Config.mainmenuLogoPath);
						enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("TextPrint(\"[WFRusCS>GD] Injected into main_menu.gd!\")", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.LoadExtImage("TextureRect", mainMenu.<mod>P.Config.mainmenuLogoPath));
						enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("if PlayerData.player_options.altfont == 0:", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("ResourceLoad(\"res://Assets/Themes/main.tres\").default_font = ResourceLoad(\"res://mods/WFRus/Cyrillic/cyrillic.tres\")", 2u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetFont("VBoxContainer/create_game", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetText("VBoxContainer/create_game", "text", "Создать лобби", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetText("VBoxContainer/create_game/TooltipNode", "header", "[color=#6a4420]Создать лобби", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetText("VBoxContainer/create_game/TooltipNode", "body", "Создайте своё лобби!", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetFont("VBoxContainer/join_game", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetText("VBoxContainer/join_game", "text", "Найти лобби", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetText("VBoxContainer/join_game/TooltipNode", "header", "[color=#6a4420]Найти лобби", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetText("VBoxContainer/join_game/TooltipNode", "body", "Играйте в чужом лобби!", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetFont("VBoxContainer/settings", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetText("VBoxContainer/settings", "text", "Настройки", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetText("VBoxContainer/settings/TooltipNode", "header", "[color=#6a4420]Настройки", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetText("VBoxContainer/settings/TooltipNode", "body", "Меняйте всякие параметры!", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetFont("VBoxContainer/quit", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetText("VBoxContainer/quit", "text", "Выйти", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetText("VBoxContainer/quit/TooltipNode", "header", "[color=#6a4420]Выйти", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetText("VBoxContainer/quit/TooltipNode", "body", "всё нормально. можешь уходить, да. я не обижусь, всё нормально. уходи.", 1u));
						<>7__wrap3 = enumerable.GetEnumerator();
						<>1__state = -4;
						goto IL_036f;
					}
					case 2:
						<>1__state = -4;
						goto IL_036f;
					case 3:
						<>1__state = -3;
						break;
					case 4:
						{
							<>1__state = -3;
							break;
						}
						IL_036f:
						if (((global::System.Collections.IEnumerator)<>7__wrap3).MoveNext())
						{
							Token current = <>7__wrap3.Current;
							<>2__current = current;
							<>1__state = 2;
							return true;
						}
						<>m__Finally2();
						<>7__wrap3 = null;
						<>2__current = new Token((TokenType)89, (uint?)1u);
						<>1__state = 3;
						return true;
					}
					if (((global::System.Collections.IEnumerator)<>7__wrap2).MoveNext())
					{
						Token current2 = <>7__wrap2.Current;
						if (<waiter>5__2.Check(current2))
						{
							<>2__current = current2;
							<>1__state = 1;
							return true;
						}
						<>2__current = current2;
						<>1__state = 4;
						return true;
					}
					<>m__Finally1();
					<>7__wrap2 = null;
					return false;
				}
				catch
				{
					//try-fault
					((global::System.IDisposable)this).Dispose();
					throw;
				}
			}

			bool global::System.Collections.IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			private void <>m__Finally1()
			{
				<>1__state = -1;
				if (<>7__wrap2 != null)
				{
					((global::System.IDisposable)<>7__wrap2).Dispose();
				}
			}

			private void <>m__Finally2()
			{
				<>1__state = -3;
				if (<>7__wrap3 != null)
				{
					((global::System.IDisposable)<>7__wrap3).Dispose();
				}
			}

			[DebuggerHidden]
			void global::System.Collections.IEnumerator.Reset()
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				throw new NotSupportedException();
			}

			[DebuggerHidden]
			global::System.Collections.Generic.IEnumerator<Token> global::System.Collections.Generic.IEnumerable<Token>.GetEnumerator()
			{
				<Modify>d__3 <Modify>d__;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					<Modify>d__ = this;
				}
				else
				{
					<Modify>d__ = new <Modify>d__3(0)
					{
						<>4__this = <>4__this
					};
				}
				<Modify>d__.tokens = <>3__tokens;
				return <Modify>d__;
			}

			[DebuggerHidden]
			global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator()
			{
				return (global::System.Collections.IEnumerator)((global::System.Collections.Generic.IEnumerable<Token>)this).GetEnumerator();
			}
		}

		[CompilerGenerated]
		private WFRusMod <mod>P;

		public MainMenu(WFRusMod mod)
		{
			<mod>P = mod;
			base..ctor();
		}

		public bool ShouldRun(string path)
		{
			return path == "res://Scenes/Menus/Main Menu/main_menu.gdc";
		}

		[IteratorStateMachine(typeof(<Modify>d__3))]
		public global::System.Collections.Generic.IEnumerable<Token> Modify(string path, global::System.Collections.Generic.IEnumerable<Token> tokens)
		{
			MultiTokenWaiter waiter = new MultiTokenWaiter(new Func<Token, bool>[2]
			{
				delegate(Token t)
				{
					IdentifierToken val = (IdentifierToken)(object)((t is IdentifierToken) ? t : null);
					return val != null && val.Name == "_ready";
				},
				(Token t) => (int)t.Type == 89
			}, false, true);
			global::System.Collections.Generic.IEnumerator<Token> enumerator = tokens.GetEnumerator();
			try
			{
				while (((global::System.Collections.IEnumerator)enumerator).MoveNext())
				{
					Token current = enumerator.Current;
					if (waiter.Check(current))
					{
						yield return current;
						global::System.Collections.Generic.IEnumerable<Token> enumerable = global::System.Array.Empty<Token>();
						<mod>P.Logger.Information("Trying to load mainmenu logo from " + <mod>P.Config.mainmenuLogoPath);
						enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("TextPrint(\"[WFRusCS>GD] Injected into main_menu.gd!\")", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.LoadExtImage("TextureRect", <mod>P.Config.mainmenuLogoPath));
						enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("if PlayerData.player_options.altfont == 0:", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("ResourceLoad(\"res://Assets/Themes/main.tres\").default_font = ResourceLoad(\"res://mods/WFRus/Cyrillic/cyrillic.tres\")", 2u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetFont("VBoxContainer/create_game", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetText("VBoxContainer/create_game", "text", "Создать лобби", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetText("VBoxContainer/create_game/TooltipNode", "header", "[color=#6a4420]Создать лобби", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetText("VBoxContainer/create_game/TooltipNode", "body", "Создайте своё лобби!", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetFont("VBoxContainer/join_game", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetText("VBoxContainer/join_game", "text", "Найти лобби", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetText("VBoxContainer/join_game/TooltipNode", "header", "[color=#6a4420]Найти лобби", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetText("VBoxContainer/join_game/TooltipNode", "body", "Играйте в чужом лобби!", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetFont("VBoxContainer/settings", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetText("VBoxContainer/settings", "text", "Настройки", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetText("VBoxContainer/settings/TooltipNode", "header", "[color=#6a4420]Настройки", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetText("VBoxContainer/settings/TooltipNode", "body", "Меняйте всякие параметры!", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetFont("VBoxContainer/quit", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetText("VBoxContainer/quit", "text", "Выйти", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetText("VBoxContainer/quit/TooltipNode", "header", "[color=#6a4420]Выйти", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.SetText("VBoxContainer/quit/TooltipNode", "body", "всё нормально. можешь уходить, да. я не обижусь, всё нормально. уходи.", 1u));
						global::System.Collections.Generic.IEnumerator<Token> enumerator2 = enumerable.GetEnumerator();
						try
						{
							while (((global::System.Collections.IEnumerator)enumerator2).MoveNext())
							{
								yield return enumerator2.Current;
							}
						}
						finally
						{
							((global::System.IDisposable)enumerator2)?.Dispose();
						}
						yield return new Token((TokenType)89, (uint?)1u);
					}
					else
					{
						yield return current;
					}
				}
			}
			finally
			{
				((global::System.IDisposable)enumerator)?.Dispose();
			}
		}
	}
	public class OptionsMenu : IScriptMod
	{
		[CompilerGenerated]
		private sealed class <Modify>d__1 : global::System.Collections.Generic.IEnumerable<Token>, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerator<Token>, global::System.Collections.IEnumerator, global::System.IDisposable
		{
			private int <>1__state;

			private Token <>2__current;

			private int <>l__initialThreadId;

			private global::System.Collections.Generic.IEnumerable<Token> tokens;

			public global::System.Collections.Generic.IEnumerable<Token> <>3__tokens;

			private MultiTokenWaiter <waiter>5__2;

			private TokenWaiter <waiter2>5__3;

			private Enumerator<Token> <enmr>5__4;

			private bool <hasNext>5__5;

			Token global::System.Collections.Generic.IEnumerator<Token>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object global::System.Collections.IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <Modify>d__1(int <>1__state)
			{
				this.<>1__state = <>1__state;
				<>l__initialThreadId = Environment.CurrentManagedThreadId;
			}

			[DebuggerHidden]
			void global::System.IDisposable.Dispose()
			{
			}

			private bool MoveNext()
			{
				//IL_01c9: Unknown result type (might be due to invalid IL or missing references)
				//IL_01d3: Expected O, but got Unknown
				//IL_024c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0256: Expected O, but got Unknown
				//IL_018e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0198: Expected O, but got Unknown
				//IL_020c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0216: Expected O, but got Unknown
				//IL_0211: Unknown result type (might be due to invalid IL or missing references)
				//IL_021b: Expected O, but got Unknown
				//IL_00d9: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e3: Expected O, but got Unknown
				//IL_0104: Unknown result type (might be due to invalid IL or missing references)
				//IL_010e: Expected O, but got Unknown
				//IL_011a: Unknown result type (might be due to invalid IL or missing references)
				//IL_011f: Unknown result type (might be due to invalid IL or missing references)
				switch (<>1__state)
				{
				default:
					return false;
				case 0:
					<>1__state = -1;
					<waiter>5__2 = new MultiTokenWaiter(new Func<Token, bool>[5]
					{
						delegate(Token t)
						{
							IdentifierToken val3 = (IdentifierToken)(object)((t is IdentifierToken) ? t : null);
							return val3 != null && val3.Name == "_update_options";
						},
						delegate(Token t)
						{
							IdentifierToken val2 = (IdentifierToken)(object)((t is IdentifierToken) ? t : null);
							return val2 != null && val2.Name == "altfont";
						},
						delegate(Token t)
						{
							IdentifierToken val = (IdentifierToken)(object)((t is IdentifierToken) ? t : null);
							return val != null && val.Name == "default_font";
						},
						(Token t) => (int)t.Type == 23,
						(Token t) => (int)t.Type == 63
					}, false, true);
					<waiter2>5__3 = new TokenWaiter((Func<Token, bool>)((Token t) => false), false);
					<enmr>5__4 = Enumerable.ToList<Token>(tokens).GetEnumerator();
					<hasNext>5__5 = <enmr>5__4.MoveNext();
					break;
				case 1:
					<>1__state = -1;
					<waiter2>5__3 = new TokenWaiter((Func<Token, bool>)((Token t) => t is ConstantToken), false);
					break;
				case 2:
					<>1__state = -1;
					<waiter2>5__3 = new TokenWaiter((Func<Token, bool>)((Token t) => false), false);
					break;
				case 3:
					<>1__state = -1;
					break;
				}
				if (<hasNext>5__5)
				{
					Token current = <enmr>5__4.Current;
					<hasNext>5__5 = <enmr>5__4.MoveNext();
					if (<waiter>5__2.Check(current))
					{
						Console.WriteLine("[WFRusCS] Injecting options menu (preload -> load)");
						Console.WriteLine(Enumerable.ToList<Token>(tokens).IndexOf(current));
						<>2__current = new Token((TokenType)5, (uint?)76u);
						<>1__state = 1;
						return true;
					}
					if (<waiter2>5__3.Check(current))
					{
						Console.WriteLine("[WFRusCS] Injecting options menu (main_font.tres -> cyrillic.tres)");
						Console.WriteLine(Enumerable.ToList<Token>(tokens).IndexOf(current));
						<>2__current = (Token)new ConstantToken((Variant)new StringVariant("res://mods/WFRus/Cyrillic/cyrillic.tres"));
						<>1__state = 2;
						return true;
					}
					<>2__current = current;
					<>1__state = 3;
					return true;
				}
				return false;
			}

			bool global::System.Collections.IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			[DebuggerHidden]
			void global::System.Collections.IEnumerator.Reset()
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				throw new NotSupportedException();
			}

			[DebuggerHidden]
			global::System.Collections.Generic.IEnumerator<Token> global::System.Collections.Generic.IEnumerable<Token>.GetEnumerator()
			{
				<Modify>d__1 <Modify>d__;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					<Modify>d__ = this;
				}
				else
				{
					<Modify>d__ = new <Modify>d__1(0);
				}
				<Modify>d__.tokens = <>3__tokens;
				return <Modify>d__;
			}

			[DebuggerHidden]
			global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator()
			{
				return (global::System.Collections.IEnumerator)((global::System.Collections.Generic.IEnumerable<Token>)this).GetEnumerator();
			}
		}

		public bool ShouldRun(string path)
		{
			return path == "res://Scenes/Singletons/OptionsMenu/options_menu.gdc";
		}

		[IteratorStateMachine(typeof(<Modify>d__1))]
		public global::System.Collections.Generic.IEnumerable<Token> Modify(string path, global::System.Collections.Generic.IEnumerable<Token> tokens)
		{
			MultiTokenWaiter waiter = new MultiTokenWaiter(new Func<Token, bool>[5]
			{
				delegate(Token t)
				{
					IdentifierToken val3 = (IdentifierToken)(object)((t is IdentifierToken) ? t : null);
					return val3 != null && val3.Name == "_update_options";
				},
				delegate(Token t)
				{
					IdentifierToken val2 = (IdentifierToken)(object)((t is IdentifierToken) ? t : null);
					return val2 != null && val2.Name == "altfont";
				},
				delegate(Token t)
				{
					IdentifierToken val = (IdentifierToken)(object)((t is IdentifierToken) ? t : null);
					return val != null && val.Name == "default_font";
				},
				(Token t) => (int)t.Type == 23,
				(Token t) => (int)t.Type == 63
			}, false, true);
			TokenWaiter waiter2 = new TokenWaiter((Func<Token, bool>)((Token t) => false), false);
			Enumerator<Token> enmr = Enumerable.ToList<Token>(tokens).GetEnumerator();
			bool hasNext = enmr.MoveNext();
			while (hasNext)
			{
				Token current = enmr.Current;
				hasNext = enmr.MoveNext();
				if (waiter.Check(current))
				{
					Console.WriteLine("[WFRusCS] Injecting options menu (preload -> load)");
					Console.WriteLine(Enumerable.ToList<Token>(tokens).IndexOf(current));
					yield return new Token((TokenType)5, (uint?)76u);
					waiter2 = new TokenWaiter((Func<Token, bool>)((Token t) => t is ConstantToken), false);
				}
				else if (waiter2.Check(current))
				{
					Console.WriteLine("[WFRusCS] Injecting options menu (main_font.tres -> cyrillic.tres)");
					Console.WriteLine(Enumerable.ToList<Token>(tokens).IndexOf(current));
					yield return (Token)new ConstantToken((Variant)new StringVariant("res://mods/WFRus/Cyrillic/cyrillic.tres"));
					waiter2 = new TokenWaiter((Func<Token, bool>)((Token t) => false), false);
				}
				else
				{
					yield return current;
				}
			}
		}
	}
	public class PlayerVoice : IScriptMod
	{
		[CompilerGenerated]
		private sealed class <Modify>d__1 : global::System.Collections.Generic.IEnumerable<Token>, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerator<Token>, global::System.Collections.IEnumerator, global::System.IDisposable
		{
			private int <>1__state;

			private Token <>2__current;

			private int <>l__initialThreadId;

			private global::System.Collections.Generic.IEnumerable<Token> tokens;

			public global::System.Collections.Generic.IEnumerable<Token> <>3__tokens;

			private MultiTokenWaiter <waiter>5__2;

			private global::System.Collections.Generic.IEnumerator<Token> <>7__wrap2;

			private Token <token>5__4;

			private Enumerator<string> <>7__wrap4;

			private string <ch>5__6;

			Token global::System.Collections.Generic.IEnumerator<Token>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object global::System.Collections.IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <Modify>d__1(int <>1__state)
			{
				this.<>1__state = <>1__state;
				<>l__initialThreadId = Environment.CurrentManagedThreadId;
			}

			[DebuggerHidden]
			void global::System.IDisposable.Dispose()
			{
				int num = <>1__state;
				if ((uint)(num - -4) > 1u && (uint)(num - 1) > 3u)
				{
					return;
				}
				try
				{
					if (num != -4 && (uint)(num - 1) > 1u)
					{
						return;
					}
					try
					{
					}
					finally
					{
						<>m__Finally2();
					}
				}
				finally
				{
					<>m__Finally1();
				}
			}

			private bool MoveNext()
			{
				//IL_017b: Unknown result type (might be due to invalid IL or missing references)
				//IL_0185: Expected O, but got Unknown
				//IL_0180: Unknown result type (might be due to invalid IL or missing references)
				//IL_018a: Expected O, but got Unknown
				//IL_0154: Unknown result type (might be due to invalid IL or missing references)
				//IL_015e: Expected O, but got Unknown
				//IL_01c0: Unknown result type (might be due to invalid IL or missing references)
				//IL_009e: Unknown result type (might be due to invalid IL or missing references)
				//IL_00a8: Expected O, but got Unknown
				//IL_0123: Unknown result type (might be due to invalid IL or missing references)
				//IL_0128: Unknown result type (might be due to invalid IL or missing references)
				try
				{
					switch (<>1__state)
					{
					default:
						return false;
					case 0:
						<>1__state = -1;
						<waiter>5__2 = new MultiTokenWaiter(new Func<Token, bool>[3]
						{
							delegate(Token t)
							{
								IdentifierToken val3 = (IdentifierToken)(object)((t is IdentifierToken) ? t : null);
								return val3 != null && val3.Name == "_sync_talk";
							},
							delegate(Token t)
							{
								IdentifierToken val2 = (IdentifierToken)(object)((t is IdentifierToken) ? t : null);
								return val2 != null && val2.Name == "blacklist";
							},
							(Token t) => (int)t.Type == 77
						}, false, true);
						<>7__wrap2 = tokens.GetEnumerator();
						<>1__state = -3;
						goto IL_020d;
					case 1:
						<>1__state = -4;
						<>2__current = (Token)new ConstantToken((Variant)new StringVariant(<ch>5__6));
						<>1__state = 2;
						return true;
					case 2:
						<>1__state = -4;
						<ch>5__6 = null;
						goto IL_01a7;
					case 3:
						<>1__state = -3;
						goto IL_0206;
					case 4:
						{
							<>1__state = -3;
							goto IL_0206;
						}
						IL_0206:
						<token>5__4 = null;
						goto IL_020d;
						IL_01a7:
						if (<>7__wrap4.MoveNext())
						{
							<ch>5__6 = <>7__wrap4.Current;
							<>2__current = new Token((TokenType)82, (uint?)null);
							<>1__state = 1;
							return true;
						}
						<>m__Finally2();
						<>7__wrap4 = default(Enumerator<string>);
						<>2__current = <token>5__4;
						<>1__state = 3;
						return true;
						IL_020d:
						if (((global::System.Collections.IEnumerator)<>7__wrap2).MoveNext())
						{
							<token>5__4 = <>7__wrap2.Current;
							if (<waiter>5__2.Check(<token>5__4))
							{
								List<string> val = Enumerable.ToList<string>(Enumerable.Select<char, string>((global::System.Collections.Generic.IEnumerable<char>)Enumerable.ToList<char>((global::System.Collections.Generic.IEnumerable<char>)"абвгдеёжзийклмнопрстуфхцчшщьыэюя"), (Func<char, string>)((char c) => c.ToString())));
								<>7__wrap4 = val.GetEnumerator();
								<>1__state = -4;
								goto IL_01a7;
							}
							<>2__current = <token>5__4;
							<>1__state = 4;
							return true;
						}
						<>m__Finally1();
						<>7__wrap2 = null;
						return false;
					}
				}
				catch
				{
					//try-fault
					((global::System.IDisposable)this).Dispose();
					throw;
				}
			}

			bool global::System.Collections.IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			private void <>m__Finally1()
			{
				<>1__state = -1;
				if (<>7__wrap2 != null)
				{
					((global::System.IDisposable)<>7__wrap2).Dispose();
				}
			}

			private void <>m__Finally2()
			{
				<>1__state = -3;
				((global::System.IDisposable)<>7__wrap4).Dispose();
			}

			[DebuggerHidden]
			void global::System.Collections.IEnumerator.Reset()
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				throw new NotSupportedException();
			}

			[DebuggerHidden]
			global::System.Collections.Generic.IEnumerator<Token> global::System.Collections.Generic.IEnumerable<Token>.GetEnumerator()
			{
				<Modify>d__1 <Modify>d__;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					<Modify>d__ = this;
				}
				else
				{
					<Modify>d__ = new <Modify>d__1(0);
				}
				<Modify>d__.tokens = <>3__tokens;
				return <Modify>d__;
			}

			[DebuggerHidden]
			global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator()
			{
				return (global::System.Collections.IEnumerator)((global::System.Collections.Generic.IEnumerable<Token>)this).GetEnumerator();
			}
		}

		public bool ShouldRun(string path)
		{
			return path == "res://Scenes/Entities/Player/player.gdc";
		}

		[IteratorStateMachine(typeof(<Modify>d__1))]
		public global::System.Collections.Generic.IEnumerable<Token> Modify(string path, global::System.Collections.Generic.IEnumerable<Token> tokens)
		{
			MultiTokenWaiter waiter = new MultiTokenWaiter(new Func<Token, bool>[3]
			{
				delegate(Token t)
				{
					IdentifierToken val3 = (IdentifierToken)(object)((t is IdentifierToken) ? t : null);
					return val3 != null && val3.Name == "_sync_talk";
				},
				delegate(Token t)
				{
					IdentifierToken val2 = (IdentifierToken)(object)((t is IdentifierToken) ? t : null);
					return val2 != null && val2.Name == "blacklist";
				},
				(Token t) => (int)t.Type == 77
			}, false, true);
			global::System.Collections.Generic.IEnumerator<Token> enumerator = tokens.GetEnumerator();
			try
			{
				while (((global::System.Collections.IEnumerator)enumerator).MoveNext())
				{
					Token token = enumerator.Current;
					if (waiter.Check(token))
					{
						List<string> val = Enumerable.ToList<string>(Enumerable.Select<char, string>((global::System.Collections.Generic.IEnumerable<char>)Enumerable.ToList<char>((global::System.Collections.Generic.IEnumerable<char>)"абвгдеёжзийклмнопрстуфхцчшщьыэюя"), (Func<char, string>)((char c) => c.ToString())));
						Enumerator<string> enumerator2 = val.GetEnumerator();
						try
						{
							while (enumerator2.MoveNext())
							{
								string ch = enumerator2.Current;
								yield return new Token((TokenType)82, (uint?)null);
								yield return (Token)new ConstantToken((Variant)new StringVariant(ch));
							}
						}
						finally
						{
							((global::System.IDisposable)enumerator2).Dispose();
						}
						yield return token;
					}
					else
					{
						yield return token;
					}
				}
			}
			finally
			{
				((global::System.IDisposable)enumerator)?.Dispose();
			}
		}
	}
	public class SpeechBubble : IScriptMod
	{
		[CompilerGenerated]
		private sealed class <Modify>d__1 : global::System.Collections.Generic.IEnumerable<Token>, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerator<Token>, global::System.Collections.IEnumerator, global::System.IDisposable
		{
			private int <>1__state;

			private Token <>2__current;

			private int <>l__initialThreadId;

			private global::System.Collections.Generic.IEnumerable<Token> tokens;

			public global::System.Collections.Generic.IEnumerable<Token> <>3__tokens;

			private MultiTokenWaiter <waiter>5__2;

			private global::System.Collections.Generic.IEnumerator<Token> <>7__wrap2;

			private global::System.Collections.Generic.IEnumerator<Token> <>7__wrap3;

			Token global::System.Collections.Generic.IEnumerator<Token>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object global::System.Collections.IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <Modify>d__1(int <>1__state)
			{
				this.<>1__state = <>1__state;
				<>l__initialThreadId = Environment.CurrentManagedThreadId;
			}

			[DebuggerHidden]
			void global::System.IDisposable.Dispose()
			{
				int num = <>1__state;
				if ((uint)(num - -4) > 1u && (uint)(num - 1) > 3u)
				{
					return;
				}
				try
				{
					if (num != -4 && num != 2)
					{
						return;
					}
					try
					{
					}
					finally
					{
						<>m__Finally2();
					}
				}
				finally
				{
					<>m__Finally1();
				}
			}

			private bool MoveNext()
			{
				//IL_007c: Unknown result type (might be due to invalid IL or missing references)
				//IL_0086: Expected O, but got Unknown
				//IL_014e: Unknown result type (might be due to invalid IL or missing references)
				//IL_0158: Expected O, but got Unknown
				try
				{
					switch (<>1__state)
					{
					default:
						return false;
					case 0:
						<>1__state = -1;
						<waiter>5__2 = new MultiTokenWaiter(new Func<Token, bool>[2]
						{
							delegate(Token t)
							{
								IdentifierToken val = (IdentifierToken)(object)((t is IdentifierToken) ? t : null);
								return val != null && val.Name == "_ready";
							},
							(Token t) => (int)t.Type == 89
						}, false, true);
						<>7__wrap2 = tokens.GetEnumerator();
						<>1__state = -3;
						break;
					case 1:
					{
						<>1__state = -3;
						global::System.Collections.Generic.IEnumerable<Token> enumerable = Helpers.SetFont("RichTextLabel");
						<>7__wrap3 = enumerable.GetEnumerator();
						<>1__state = -4;
						goto IL_012b;
					}
					case 2:
						<>1__state = -4;
						goto IL_012b;
					case 3:
						<>1__state = -3;
						break;
					case 4:
						{
							<>1__state = -3;
							break;
						}
						IL_012b:
						if (((global::System.Collections.IEnumerator)<>7__wrap3).MoveNext())
						{
							Token current = <>7__wrap3.Current;
							<>2__current = current;
							<>1__state = 2;
							return true;
						}
						<>m__Finally2();
						<>7__wrap3 = null;
						<>2__current = new Token((TokenType)89, (uint?)1u);
						<>1__state = 3;
						return true;
					}
					if (((global::System.Collections.IEnumerator)<>7__wrap2).MoveNext())
					{
						Token current2 = <>7__wrap2.Current;
						if (<waiter>5__2.Check(current2))
						{
							<>2__current = current2;
							<>1__state = 1;
							return true;
						}
						<>2__current = current2;
						<>1__state = 4;
						return true;
					}
					<>m__Finally1();
					<>7__wrap2 = null;
					return false;
				}
				catch
				{
					//try-fault
					((global::System.IDisposable)this).Dispose();
					throw;
				}
			}

			bool global::System.Collections.IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			private void <>m__Finally1()
			{
				<>1__state = -1;
				if (<>7__wrap2 != null)
				{
					((global::System.IDisposable)<>7__wrap2).Dispose();
				}
			}

			private void <>m__Finally2()
			{
				<>1__state = -3;
				if (<>7__wrap3 != null)
				{
					((global::System.IDisposable)<>7__wrap3).Dispose();
				}
			}

			[DebuggerHidden]
			void global::System.Collections.IEnumerator.Reset()
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				throw new NotSupportedException();
			}

			[DebuggerHidden]
			global::System.Collections.Generic.IEnumerator<Token> global::System.Collections.Generic.IEnumerable<Token>.GetEnumerator()
			{
				<Modify>d__1 <Modify>d__;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					<Modify>d__ = this;
				}
				else
				{
					<Modify>d__ = new <Modify>d__1(0);
				}
				<Modify>d__.tokens = <>3__tokens;
				return <Modify>d__;
			}

			[DebuggerHidden]
			global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator()
			{
				return (global::System.Collections.IEnumerator)((global::System.Collections.Generic.IEnumerable<Token>)this).GetEnumerator();
			}
		}

		public bool ShouldRun(string path)
		{
			return path == "res://Scenes/Entities/Player/SpeechBubble/speech_bubble.gdc";
		}

		[IteratorStateMachine(typeof(<Modify>d__1))]
		public global::System.Collections.Generic.IEnumerable<Token> Modify(string path, global::System.Collections.Generic.IEnumerable<Token> tokens)
		{
			MultiTokenWaiter waiter = new MultiTokenWaiter(new Func<Token, bool>[2]
			{
				delegate(Token t)
				{
					IdentifierToken val = (IdentifierToken)(object)((t is IdentifierToken) ? t : null);
					return val != null && val.Name == "_ready";
				},
				(Token t) => (int)t.Type == 89
			}, false, true);
			global::System.Collections.Generic.IEnumerator<Token> enumerator = tokens.GetEnumerator();
			try
			{
				while (((global::System.Collections.IEnumerator)enumerator).MoveNext())
				{
					Token current = enumerator.Current;
					if (waiter.Check(current))
					{
						yield return current;
						global::System.Collections.Generic.IEnumerable<Token> enumerable = Helpers.SetFont("RichTextLabel");
						global::System.Collections.Generic.IEnumerator<Token> enumerator2 = enumerable.GetEnumerator();
						try
						{
							while (((global::System.Collections.IEnumerator)enumerator2).MoveNext())
							{
								yield return enumerator2.Current;
							}
						}
						finally
						{
							((global::System.IDisposable)enumerator2)?.Dispose();
						}
						yield return new Token((TokenType)89, (uint?)1u);
					}
					else
					{
						yield return current;
					}
				}
			}
			finally
			{
				((global::System.IDisposable)enumerator)?.Dispose();
			}
		}
	}
	public class SplashScreen : IScriptMod
	{
		[CompilerGenerated]
		private sealed class <Modify>d__3 : global::System.Collections.Generic.IEnumerable<Token>, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerator<Token>, global::System.Collections.IEnumerator, global::System.IDisposable
		{
			private int <>1__state;

			private Token <>2__current;

			private int <>l__initialThreadId;

			private global::System.Collections.Generic.IEnumerable<Token> tokens;

			public global::System.Collections.Generic.IEnumerable<Token> <>3__tokens;

			public SplashScreen <>4__this;

			private MultiTokenWaiter <waiter>5__2;

			private global::System.Collections.Generic.IEnumerator<Token> <>7__wrap2;

			private global::System.Collections.Generic.IEnumerator<Token> <>7__wrap3;

			Token global::System.Collections.Generic.IEnumerator<Token>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object global::System.Collections.IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <Modify>d__3(int <>1__state)
			{
				this.<>1__state = <>1__state;
				<>l__initialThreadId = Environment.CurrentManagedThreadId;
			}

			[DebuggerHidden]
			void global::System.IDisposable.Dispose()
			{
				int num = <>1__state;
				if ((uint)(num - -4) > 1u && (uint)(num - 1) > 3u)
				{
					return;
				}
				try
				{
					if (num != -4 && num != 2)
					{
						return;
					}
					try
					{
					}
					finally
					{
						<>m__Finally2();
					}
				}
				finally
				{
					<>m__Finally1();
				}
			}

			private bool MoveNext()
			{
				//IL_0083: Unknown result type (might be due to invalid IL or missing references)
				//IL_008d: Expected O, but got Unknown
				//IL_01a3: Unknown result type (might be due to invalid IL or missing references)
				//IL_01ad: Expected O, but got Unknown
				//IL_00d1: Unknown result type (might be due to invalid IL or missing references)
				//IL_00db: Expected O, but got Unknown
				try
				{
					int num = <>1__state;
					SplashScreen splashScreen = <>4__this;
					switch (num)
					{
					default:
						return false;
					case 0:
						<>1__state = -1;
						<waiter>5__2 = new MultiTokenWaiter(new Func<Token, bool>[2]
						{
							delegate(Token t)
							{
								IdentifierToken val = (IdentifierToken)(object)((t is IdentifierToken) ? t : null);
								return val != null && val.Name == "_ready";
							},
							(Token t) => (int)t.Type == 89
						}, false, true);
						<>7__wrap2 = tokens.GetEnumerator();
						<>1__state = -3;
						break;
					case 1:
					{
						<>1__state = -3;
						global::System.Collections.Generic.IEnumerable<Token> enumerable = global::System.Array.Empty<Token>();
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.LoadExtImage("lame", splashScreen.<mod>P.Config.splashLamePath));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.LoadExtImage("god", splashScreen.<mod>P.Config.splashGodotPath));
						<>7__wrap3 = enumerable.GetEnumerator();
						<>1__state = -4;
						goto IL_0180;
					}
					case 2:
						<>1__state = -4;
						goto IL_0180;
					case 3:
						<>1__state = -3;
						break;
					case 4:
						{
							<>1__state = -3;
							break;
						}
						IL_0180:
						if (((global::System.Collections.IEnumerator)<>7__wrap3).MoveNext())
						{
							Token current = <>7__wrap3.Current;
							<>2__current = current;
							<>1__state = 2;
							return true;
						}
						<>m__Finally2();
						<>7__wrap3 = null;
						<>2__current = new Token((TokenType)89, (uint?)1u);
						<>1__state = 3;
						return true;
					}
					if (((global::System.Collections.IEnumerator)<>7__wrap2).MoveNext())
					{
						Token current2 = <>7__wrap2.Current;
						if (<waiter>5__2.Check(current2))
						{
							<>2__current = new Token((TokenType)89, (uint?)1u);
							<>1__state = 1;
							return true;
						}
						<>2__current = current2;
						<>1__state = 4;
						return true;
					}
					<>m__Finally1();
					<>7__wrap2 = null;
					return false;
				}
				catch
				{
					//try-fault
					((global::System.IDisposable)this).Dispose();
					throw;
				}
			}

			bool global::System.Collections.IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			private void <>m__Finally1()
			{
				<>1__state = -1;
				if (<>7__wrap2 != null)
				{
					((global::System.IDisposable)<>7__wrap2).Dispose();
				}
			}

			private void <>m__Finally2()
			{
				<>1__state = -3;
				if (<>7__wrap3 != null)
				{
					((global::System.IDisposable)<>7__wrap3).Dispose();
				}
			}

			[DebuggerHidden]
			void global::System.Collections.IEnumerator.Reset()
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				throw new NotSupportedException();
			}

			[DebuggerHidden]
			global::System.Collections.Generic.IEnumerator<Token> global::System.Collections.Generic.IEnumerable<Token>.GetEnumerator()
			{
				<Modify>d__3 <Modify>d__;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					<Modify>d__ = this;
				}
				else
				{
					<Modify>d__ = new <Modify>d__3(0)
					{
						<>4__this = <>4__this
					};
				}
				<Modify>d__.tokens = <>3__tokens;
				return <Modify>d__;
			}

			[DebuggerHidden]
			global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator()
			{
				return (global::System.Collections.IEnumerator)((global::System.Collections.Generic.IEnumerable<Token>)this).GetEnumerator();
			}
		}

		[CompilerGenerated]
		private WFRusMod <mod>P;

		public SplashScreen(WFRusMod mod)
		{
			<mod>P = mod;
			base..ctor();
		}

		public bool ShouldRun(string path)
		{
			return path == "res://Scenes/Menus/Splash/splash.gdc";
		}

		[IteratorStateMachine(typeof(<Modify>d__3))]
		public global::System.Collections.Generic.IEnumerable<Token> Modify(string path, global::System.Collections.Generic.IEnumerable<Token> tokens)
		{
			MultiTokenWaiter waiter = new MultiTokenWaiter(new Func<Token, bool>[2]
			{
				delegate(Token t)
				{
					IdentifierToken val = (IdentifierToken)(object)((t is IdentifierToken) ? t : null);
					return val != null && val.Name == "_ready";
				},
				(Token t) => (int)t.Type == 89
			}, false, true);
			global::System.Collections.Generic.IEnumerator<Token> enumerator = tokens.GetEnumerator();
			try
			{
				while (((global::System.Collections.IEnumerator)enumerator).MoveNext())
				{
					Token current = enumerator.Current;
					if (waiter.Check(current))
					{
						yield return new Token((TokenType)89, (uint?)1u);
						global::System.Collections.Generic.IEnumerable<Token> enumerable = global::System.Array.Empty<Token>();
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.LoadExtImage("lame", <mod>P.Config.splashLamePath));
						enumerable = Enumerable.Concat<Token>(enumerable, Helpers.LoadExtImage("god", <mod>P.Config.splashGodotPath));
						global::System.Collections.Generic.IEnumerator<Token> enumerator2 = enumerable.GetEnumerator();
						try
						{
							while (((global::System.Collections.IEnumerator)enumerator2).MoveNext())
							{
								yield return enumerator2.Current;
							}
						}
						finally
						{
							((global::System.IDisposable)enumerator2)?.Dispose();
						}
						yield return new Token((TokenType)89, (uint?)1u);
					}
					else
					{
						yield return current;
					}
				}
			}
			finally
			{
				((global::System.IDisposable)enumerator)?.Dispose();
			}
		}
	}
}
namespace WFRus.modifies.globals
{
	public class GlobalsAddMaps : IScriptMod
	{
		[CompilerGenerated]
		private sealed class <Modify>d__1 : global::System.Collections.Generic.IEnumerable<Token>, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerator<Token>, global::System.Collections.IEnumerator, global::System.IDisposable
		{
			private int <>1__state;

			private Token <>2__current;

			private int <>l__initialThreadId;

			private global::System.Collections.Generic.IEnumerable<Token> tokens;

			public global::System.Collections.Generic.IEnumerable<Token> <>3__tokens;

			public GlobalsAddMaps <>4__this;

			private MultiTokenWaiter <waiter>5__2;

			private global::System.Collections.Generic.IEnumerator<Token> <>7__wrap2;

			private global::System.Collections.Generic.IEnumerator<Token> <>7__wrap3;

			Token global::System.Collections.Generic.IEnumerator<Token>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object global::System.Collections.IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <Modify>d__1(int <>1__state)
			{
				this.<>1__state = <>1__state;
				<>l__initialThreadId = Environment.CurrentManagedThreadId;
			}

			[DebuggerHidden]
			void global::System.IDisposable.Dispose()
			{
				int num = <>1__state;
				if ((uint)(num - -4) > 1u && (uint)(num - 1) > 2u)
				{
					return;
				}
				try
				{
					if (num != -4 && num != 2)
					{
						return;
					}
					try
					{
					}
					finally
					{
						<>m__Finally2();
					}
				}
				finally
				{
					<>m__Finally1();
				}
			}

			private bool MoveNext()
			{
				//IL_0563: Unknown result type (might be due to invalid IL or missing references)
				//IL_056d: Expected O, but got Unknown
				//IL_09da: Unknown result type (might be due to invalid IL or missing references)
				//IL_09e4: Expected O, but got Unknown
				//IL_007f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0089: Expected O, but got Unknown
				try
				{
					int num = <>1__state;
					GlobalsAddMaps globalsAddMaps = <>4__this;
					switch (num)
					{
					default:
						return false;
					case 0:
						<>1__state = -1;
						<waiter>5__2 = new MultiTokenWaiter(new Func<Token, bool>[2]
						{
							delegate(Token t)
							{
								IdentifierToken val = (IdentifierToken)(object)((t is IdentifierToken) ? t : null);
								return val != null && val.Name == "loot_tables";
							},
							(Token t) => (int)t.Type == 89
						}, false, true);
						<>7__wrap2 = tokens.GetEnumerator();
						<>1__state = -3;
						break;
					case 1:
					{
						<>1__state = -3;
						global::System.Collections.Generic.IEnumerable<Token> enumerable = global::System.Array.Empty<Token>();
						Dictionary<string, string> dict = new Dictionary<string, string>
						{
							["Scout"] = "Скаут",
							["Second Class Scout"] = "Второклассный скаут",
							["First Class Scout"] = "Первоклассный скаут",
							["Star Scout"] = "Звёздный скаут",
							["Life Scout"] = "Скаут по жизни",
							["Eagle Scout"] = "Старший скаут",
							["Survival Expert"] = "Эксперт по выживанию",
							["Pack Leader"] = "Лидер стаи",
							["Headmaster"] = "Директор",
							["Tenderfoot"] = "Новичок",
							["Voyager"] = "Путешественник",
							["Ace"] = "Ас",
							["Admiral"] = "Адмирал",
							["Ancient"] = "Древний",
							["Bi"] = "Би",
							["Bipedal Animal Drawer"] = "Двуногая тумбочка-животное",
							["cadaver dog"] = "собака-кадавр",
							["NiceCandy"] = "NiceCandy",
							["Catfisher"] = "Ловец сомов",
							["Cozy"] = "Комфортный",
							["Creature"] = "Существо",
							["Critter"] = "Тварь",
							["Cryptid"] = "Криптоид",
							["Dude"] = "Чувак",
							["Elite"] = "Элита",
							[":3"] = ":3",
							["Fish-Pilled"] = "Рыбинист",
							["Freaky"] = "Фрик",
							["Gay"] = "Гей",
							["The Title Only For People Who Caught The Super Duper Rare Golden Bass"] = "Звание только для тех, кто поймал супер пупер редкого золотого окуня",
							["The Title Only For People Who Caught The Super Duper Rare Golden Ray"] = "Звание только для тех, кто поймал супер пупер редкого золотого ската",
							["Goober"] = "Дурашка",
							["Good Boy"] = "Хороший мальчик",
							["Good Girl"] = "Хорошая девочка",
							["77 | 3328 FISSILE"] = "77 | 3328 FISSILE",
							["Igloo or Hot Dog"] = "Иглу или хот-дог",
							["Normal and Regular"] = "Нормальный и обычный",
							["Is Cool"] = "Очень крутой",
							["King"] = "Король",
							["Kitten"] = "Котик",
							["Koi Boy"] = "Кой-бой",
							["fake lamedev"] = "фейк lamedev",
							["lamedev"] = "lamedev",
							["Lesbian"] = "Лесбиянка",
							["Little Lad"] = "Микрочел",
							["Majestic"] = "Царь во дворца",
							["Musky"] = "Мускусный",
							["Night Crawler"] = "Стрингер",
							["nitrous oxide"] = "закусь азотом",
							["Non-Binary"] = "Небинарный",
							["Pan"] = "Кастрюля",
							["Pretty"] = "Милый",
							["Problematic"] = "Проблемный",
							["Pup"] = "Щенок",
							["Puppy"] = "Пёсик",
							["Queer"] = "Квир",
							["Shark Bait"] = "Наживка для акул",
							["shithead"] = "ублюдок",
							["Silly Guy"] = "Дурачок",
							["Soggy Doggy"] = "До нитки",
							["Special"] = "Особый",
							["Webfishing Special Forces"] = "Спецотряд интернет-рыбалки",
							["Stinker Dinker"] = "Вонючка",
							["\"straight\""] = "\"натурал\"",
							["Strongest Warrior"] = "Сильнейший воин",
							["Stupid Idiot Baby"] = "Тупой ребёнок-идиот",
							["Trans"] = "Транс",
							["Yapper"] = "Болтун",
							["ZedDog"] = "ZedDog"
						};
						enumerable = Enumerable.Concat<Token>(enumerable, globalsAddMaps.assignDictionary("titlenamedict", dict));
						enumerable = Enumerable.Append<Token>(enumerable, new Token((TokenType)89, (uint?)null));
						Dictionary<string, string> dict2 = new Dictionary<string, string>
						{
							["Welcome to Camp!"] = "Добро пожаловать в лагерь!",
							["Getting the ropes!"] = "Уже понимаешь, как всё завязано!",
							["Making a name for yourself!"] = "Зарабатываешь репутацию!",
							["Shining!"] = "Блестишь!",
							["Climbing the ladder!"] = "Взбираешься по лестнице!",
							["The best of the best!"] = "Лучший из лучших!",
							["You know it all!"] = "Всё знаешь!",
							["Lead by example!"] = "Веди примером!",
							["Keeping everyone else in line!"] = "Держишь всех в строю!",
							["Getting around!"] = "Бегаешь туда-сюда!",
							["Top of the world."] = "Вершина мира.",
							["Ace!"] = "Ас!",
							["admirable"] = "восхитительно",
							["Eons old!"] = "Стар, как мир!",
							["Bi!"] = "Би!",
							["RAHHHH"] = "РАХХХХ",
							["worlds smartest mutt"] = "умнейшая дворняга",
							["the nicests candy"] = "the nicests candy",
							["kinda like a cat but if it was fishing"] = "типа ловец снов но ловец сомов",
							["Nice and warm!"] = "Уютно и тепло.",
							["Raaaahh!"] = "Раааахх!",
							["just scampering around, you"] = "тупо слоняешься без дела, ты",
							["Mysterious!"] = "Загадочно!",
							["Duuuuude..."] = "Чуваааак...",
							["Intense!"] = "Мощно!",
							[":3"] = ":3",
							["based and fish-pilled"] = "базированный рыбинист",
							["what if webfishing was freaky"] = "вот бы была иге по интернет рыбалке",
							["Gay!"] = "Гей!",
							["Woah!"] = "Воу!",
							["Goob!"] = "Гуп!",
							["Who'sa good boy!"] = "Кто хороший мальчик!",
							["Who'sa good girl!"] = "Кто хорошая девочка!",
							["Hazardous..."] = "Радиокартивно...",
							["wad of meat"] = "пачка мяса",
							["we know, zach."] = "мы в курсе, зак.",
							["The coolest."] = "Крутейший.",
							["Royalty!"] = "Царственно!",
							["Mew!"] = "Мяу!",
							["koiboi"] = "коибои",
							["due to a bug, this exists now."] = "произошёл какой-то баг, и появилось это звание",
							["if youre not west and you see this. you're evil."] = "если вы не уэст и видите это. вы злодей.",
							["Lesbian!"] = "Лесбиянка!",
							["Lil guy!"] = "Мини-челик!",
							["Graceful!"] = "Грациозно!",
							["Smelly!"] = "Вонь какая!",
							["Wormy!"] = "Джилленхол?",
							["very funny"] = "очень смешно",
							["Non-Binary!"] = "Небинарный!",
							["Pan!"] = "Кастрюля!",
							["The prettiest!"] = "Милейше!",
							["Yikes, dude."] = "Мда, чел.",
							["Yeah."] = "Ага.",
							["Pup!"] = "Щенок!",
							["How peculiar."] = "Как интересно.",
							["Shark Bait!"] = "Наживка для акул!",
							["Pronounced, Shitheed."] = "Кто, интересно, выберет такое звание?",
							["just a silly lil guy,,,"] = "всего лишь маленький дурашка",
							["Sloppy!"] = "Подскользнёшься!",
							["Very special :)"] = "Очень особый :)",
							["The W.S.F."] = "С.И.Р.",
							["The stinkiest!"] = "Максимальный вонючка!",
							["mhm"] = "угу",
							["The mightiest!"] = "Величайший!",
							["we get it box."] = "это же для друзей разраба, да?",
							["Trans!"] = "Транс!",
							["Yap yap yap!"] = "Бла бла бла!",
							["zeddy doggy"] = "zeddy doggy"
						};
						enumerable = Enumerable.Concat<Token>(enumerable, globalsAddMaps.assignDictionary("titledescdict", dict2));
						enumerable = Enumerable.Append<Token>(enumerable, new Token((TokenType)89, (uint?)null));
						<>7__wrap3 = enumerable.GetEnumerator();
						<>1__state = -4;
						goto IL_0a25;
					}
					case 2:
						<>1__state = -4;
						goto IL_0a25;
					case 3:
						{
							<>1__state = -3;
							break;
						}
						IL_0a25:
						if (((global::System.Collections.IEnumerator)<>7__wrap3).MoveNext())
						{
							Token current = <>7__wrap3.Current;
							<>2__current = current;
							<>1__state = 2;
							return true;
						}
						<>m__Finally2();
						<>7__wrap3 = null;
						break;
					}
					if (((global::System.Collections.IEnumerator)<>7__wrap2).MoveNext())
					{
						Token current2 = <>7__wrap2.Current;
						if (<waiter>5__2.Check(current2))
						{
							<>2__current = current2;
							<>1__state = 1;
							return true;
						}
						<>2__current = current2;
						<>1__state = 3;
						return true;
					}
					<>m__Finally1();
					<>7__wrap2 = null;
					return false;
				}
				catch
				{
					//try-fault
					((global::System.IDisposable)this).Dispose();
					throw;
				}
			}

			bool global::System.Collections.IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			private void <>m__Finally1()
			{
				<>1__state = -1;
				if (<>7__wrap2 != null)
				{
					((global::System.IDisposable)<>7__wrap2).Dispose();
				}
			}

			private void <>m__Finally2()
			{
				<>1__state = -3;
				if (<>7__wrap3 != null)
				{
					((global::System.IDisposable)<>7__wrap3).Dispose();
				}
			}

			[DebuggerHidden]
			void global::System.Collections.IEnumerator.Reset()
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				throw new NotSupportedException();
			}

			[DebuggerHidden]
			global::System.Collections.Generic.IEnumerator<Token> global::System.Collections.Generic.IEnumerable<Token>.GetEnumerator()
			{
				<Modify>d__1 <Modify>d__;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					<Modify>d__ = this;
				}
				else
				{
					<Modify>d__ = new <Modify>d__1(0)
					{
						<>4__this = <>4__this
					};
				}
				<Modify>d__.tokens = <>3__tokens;
				return <Modify>d__;
			}

			[DebuggerHidden]
			global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator()
			{
				return (global::System.Collections.IEnumerator)((global::System.Collections.Generic.IEnumerable<Token>)this).GetEnumerator();
			}
		}

		public bool ShouldRun(string path)
		{
			return path == "res://Scenes/Singletons/globals.gdc";
		}

		[IteratorStateMachine(typeof(<Modify>d__1))]
		public global::System.Collections.Generic.IEnumerable<Token> Modify(string path, global::System.Collections.Generic.IEnumerable<Token> tokens)
		{
			MultiTokenWaiter waiter = new MultiTokenWaiter(new Func<Token, bool>[2]
			{
				delegate(Token t)
				{
					IdentifierToken val = (IdentifierToken)(object)((t is IdentifierToken) ? t : null);
					return val != null && val.Name == "loot_tables";
				},
				(Token t) => (int)t.Type == 89
			}, false, true);
			global::System.Collections.Generic.IEnumerator<Token> enumerator = tokens.GetEnumerator();
			try
			{
				while (((global::System.Collections.IEnumerator)enumerator).MoveNext())
				{
					Token current = enumerator.Current;
					if (waiter.Check(current))
					{
						yield return current;
						global::System.Collections.Generic.IEnumerable<Token> enumerable = global::System.Array.Empty<Token>();
						Dictionary<string, string> dict = new Dictionary<string, string>
						{
							["Scout"] = "Скаут",
							["Second Class Scout"] = "Второклассный скаут",
							["First Class Scout"] = "Первоклассный скаут",
							["Star Scout"] = "Звёздный скаут",
							["Life Scout"] = "Скаут по жизни",
							["Eagle Scout"] = "Старший скаут",
							["Survival Expert"] = "Эксперт по выживанию",
							["Pack Leader"] = "Лидер стаи",
							["Headmaster"] = "Директор",
							["Tenderfoot"] = "Новичок",
							["Voyager"] = "Путешественник",
							["Ace"] = "Ас",
							["Admiral"] = "Адмирал",
							["Ancient"] = "Древний",
							["Bi"] = "Би",
							["Bipedal Animal Drawer"] = "Двуногая тумбочка-животное",
							["cadaver dog"] = "собака-кадавр",
							["NiceCandy"] = "NiceCandy",
							["Catfisher"] = "Ловец сомов",
							["Cozy"] = "Комфортный",
							["Creature"] = "Существо",
							["Critter"] = "Тварь",
							["Cryptid"] = "Криптоид",
							["Dude"] = "Чувак",
							["Elite"] = "Элита",
							[":3"] = ":3",
							["Fish-Pilled"] = "Рыбинист",
							["Freaky"] = "Фрик",
							["Gay"] = "Гей",
							["The Title Only For People Who Caught The Super Duper Rare Golden Bass"] = "Звание только для тех, кто поймал супер пупер редкого золотого окуня",
							["The Title Only For People Who Caught The Super Duper Rare Golden Ray"] = "Звание только для тех, кто поймал супер пупер редкого золотого ската",
							["Goober"] = "Дурашка",
							["Good Boy"] = "Хороший мальчик",
							["Good Girl"] = "Хорошая девочка",
							["77 | 3328 FISSILE"] = "77 | 3328 FISSILE",
							["Igloo or Hot Dog"] = "Иглу или хот-дог",
							["Normal and Regular"] = "Нормальный и обычный",
							["Is Cool"] = "Очень крутой",
							["King"] = "Король",
							["Kitten"] = "Котик",
							["Koi Boy"] = "Кой-бой",
							["fake lamedev"] = "фейк lamedev",
							["lamedev"] = "lamedev",
							["Lesbian"] = "Лесбиянка",
							["Little Lad"] = "Микрочел",
							["Majestic"] = "Царь во дворца",
							["Musky"] = "Мускусный",
							["Night Crawler"] = "Стрингер",
							["nitrous oxide"] = "закусь азотом",
							["Non-Binary"] = "Небинарный",
							["Pan"] = "Кастрюля",
							["Pretty"] = "Милый",
							["Problematic"] = "Проблемный",
							["Pup"] = "Щенок",
							["Puppy"] = "Пёсик",
							["Queer"] = "Квир",
							["Shark Bait"] = "Наживка для акул",
							["shithead"] = "ублюдок",
							["Silly Guy"] = "Дурачок",
							["Soggy Doggy"] = "До нитки",
							["Special"] = "Особый",
							["Webfishing Special Forces"] = "Спецотряд интернет-рыбалки",
							["Stinker Dinker"] = "Вонючка",
							["\"straight\""] = "\"натурал\"",
							["Strongest Warrior"] = "Сильнейший воин",
							["Stupid Idiot Baby"] = "Тупой ребёнок-идиот",
							["Trans"] = "Транс",
							["Yapper"] = "Болтун",
							["ZedDog"] = "ZedDog"
						};
						enumerable = Enumerable.Concat<Token>(enumerable, assignDictionary("titlenamedict", dict));
						enumerable = Enumerable.Append<Token>(enumerable, new Token((TokenType)89, (uint?)null));
						Dictionary<string, string> dict2 = new Dictionary<string, string>
						{
							["Welcome to Camp!"] = "Добро пожаловать в лагерь!",
							["Getting the ropes!"] = "Уже понимаешь, как всё завязано!",
							["Making a name for yourself!"] = "Зарабатываешь репутацию!",
							["Shining!"] = "Блестишь!",
							["Climbing the ladder!"] = "Взбираешься по лестнице!",
							["The best of the best!"] = "Лучший из лучших!",
							["You know it all!"] = "Всё знаешь!",
							["Lead by example!"] = "Веди примером!",
							["Keeping everyone else in line!"] = "Держишь всех в строю!",
							["Getting around!"] = "Бегаешь туда-сюда!",
							["Top of the world."] = "Вершина мира.",
							["Ace!"] = "Ас!",
							["admirable"] = "восхитительно",
							["Eons old!"] = "Стар, как мир!",
							["Bi!"] = "Би!",
							["RAHHHH"] = "РАХХХХ",
							["worlds smartest mutt"] = "умнейшая дворняга",
							["the nicests candy"] = "the nicests candy",
							["kinda like a cat but if it was fishing"] = "типа ловец снов но ловец сомов",
							["Nice and warm!"] = "Уютно и тепло.",
							["Raaaahh!"] = "Раааахх!",
							["just scampering around, you"] = "тупо слоняешься без дела, ты",
							["Mysterious!"] = "Загадочно!",
							["Duuuuude..."] = "Чуваааак...",
							["Intense!"] = "Мощно!",
							[":3"] = ":3",
							["based and fish-pilled"] = "базированный рыбинист",
							["what if webfishing was freaky"] = "вот бы была иге по интернет рыбалке",
							["Gay!"] = "Гей!",
							["Woah!"] = "Воу!",
							["Goob!"] = "Гуп!",
							["Who'sa good boy!"] = "Кто хороший мальчик!",
							["Who'sa good girl!"] = "Кто хорошая девочка!",
							["Hazardous..."] = "Радиокартивно...",
							["wad of meat"] = "пачка мяса",
							["we know, zach."] = "мы в курсе, зак.",
							["The coolest."] = "Крутейший.",
							["Royalty!"] = "Царственно!",
							["Mew!"] = "Мяу!",
							["koiboi"] = "коибои",
							["due to a bug, this exists now."] = "произошёл какой-то баг, и появилось это звание",
							["if youre not west and you see this. you're evil."] = "если вы не уэст и видите это. вы злодей.",
							["Lesbian!"] = "Лесбиянка!",
							["Lil guy!"] = "Мини-челик!",
							["Graceful!"] = "Грациозно!",
							["Smelly!"] = "Вонь какая!",
							["Wormy!"] = "Джилленхол?",
							["very funny"] = "очень смешно",
							["Non-Binary!"] = "Небинарный!",
							["Pan!"] = "Кастрюля!",
							["The prettiest!"] = "Милейше!",
							["Yikes, dude."] = "Мда, чел.",
							["Yeah."] = "Ага.",
							["Pup!"] = "Щенок!",
							["How peculiar."] = "Как интересно.",
							["Shark Bait!"] = "Наживка для акул!",
							["Pronounced, Shitheed."] = "Кто, интересно, выберет такое звание?",
							["just a silly lil guy,,,"] = "всего лишь маленький дурашка",
							["Sloppy!"] = "Подскользнёшься!",
							["Very special :)"] = "Очень особый :)",
							["The W.S.F."] = "С.И.Р.",
							["The stinkiest!"] = "Максимальный вонючка!",
							["mhm"] = "угу",
							["The mightiest!"] = "Величайший!",
							["we get it box."] = "это же для друзей разраба, да?",
							["Trans!"] = "Транс!",
							["Yap yap yap!"] = "Бла бла бла!",
							["zeddy doggy"] = "zeddy doggy"
						};
						enumerable = Enumerable.Concat<Token>(enumerable, assignDictionary("titledescdict", dict2));
						enumerable = Enumerable.Append<Token>(enumerable, new Token((TokenType)89, (uint?)null));
						global::System.Collections.Generic.IEnumerator<Token> enumerator2 = enumerable.GetEnumerator();
						try
						{
							while (((global::System.Collections.IEnumerator)enumerator2).MoveNext())
							{
								yield return enumerator2.Current;
							}
						}
						finally
						{
							((global::System.IDisposable)enumerator2)?.Dispose();
						}
					}
					else
					{
						yield return current;
					}
				}
			}
			finally
			{
				((global::System.IDisposable)enumerator)?.Dispose();
			}
		}

		private global::System.Collections.Generic.IEnumerable<Token> assignDictionary(string identifier, Dictionary<string, string> dict)
		{
			//IL_0010: Unknown result type (might be due to invalid IL or missing references)
			//IL_001a: Expected O, but got Unknown
			//IL_001b: Unknown result type (might be due to invalid IL or missing references)
			//IL_0025: Expected O, but got Unknown
			//IL_0030: Unknown result type (might be due to invalid IL or missing references)
			//IL_003a: Expected O, but got Unknown
			//IL_0045: Unknown result type (might be due to invalid IL or missing references)
			//IL_004f: Expected O, but got Unknown
			//IL_0066: Unknown result type (might be due to invalid IL or missing references)
			//IL_0070: Expected O, but got Unknown
			return Enumerable.Append<Token>(Enumerable.Concat<Token>(Enumerable.Append<Token>(Enumerable.Append<Token>(Enumerable.Append<Token>(Enumerable.Append<Token>((global::System.Collections.Generic.IEnumerable<Token>)global::System.Array.Empty<Token>(), new Token((TokenType)59, (uint?)null)), (Token)new IdentifierToken(identifier)), new Token((TokenType)23, (uint?)null)), new Token((TokenType)78, (uint?)null)), parseDictionary(dict)), new Token((TokenType)79, (uint?)null));
		}

		private global::System.Collections.Generic.IEnumerable<Token> parseDictionary(Dictionary<string, string> dict)
		{
			//IL_0007: Unknown result type (might be due to invalid IL or missing references)
			//IL_000c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0019: Unknown result type (might be due to invalid IL or missing references)
			//IL_001e: Unknown result type (might be due to invalid IL or missing references)
			//IL_003c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0046: Expected O, but got Unknown
			//IL_0041: Unknown result type (might be due to invalid IL or missing references)
			//IL_004b: Expected O, but got Unknown
			//IL_0059: Unknown result type (might be due to invalid IL or missing references)
			//IL_0063: Expected O, but got Unknown
			//IL_0067: Unknown result type (might be due to invalid IL or missing references)
			//IL_0071: Expected O, but got Unknown
			//IL_006c: Unknown result type (might be due to invalid IL or missing references)
			//IL_0076: Expected O, but got Unknown
			//IL_0087: Unknown result type (might be due to invalid IL or missing references)
			//IL_0091: Expected O, but got Unknown
			global::System.Collections.Generic.IEnumerable<Token> enumerable = global::System.Array.Empty<Token>();
			Enumerator<string, string> enumerator = dict.GetEnumerator();
			bool flag = enumerator.MoveNext();
			string text = default(string);
			string text2 = default(string);
			while (flag)
			{
				enumerator.Current.Deconstruct(ref text, ref text2);
				string text3 = text;
				string text4 = text2;
				flag = enumerator.MoveNext();
				enumerable = Enumerable.Append<Token>(enumerable, (Token)new ConstantToken((Variant)new StringVariant(text3)));
				enumerable = Enumerable.Append<Token>(enumerable, new Token((TokenType)86, (uint?)null));
				enumerable = Enumerable.Append<Token>(enumerable, (Token)new ConstantToken((Variant)new StringVariant(text4)));
				if (flag)
				{
					enumerable = Enumerable.Append<Token>(enumerable, new Token((TokenType)82, (uint?)null));
				}
			}
			return enumerable;
		}
	}
	public class GlobalsUseMaps : IScriptMod
	{
		[CompilerGenerated]
		private sealed class <Modify>d__1 : global::System.Collections.Generic.IEnumerable<Token>, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerator<Token>, global::System.Collections.IEnumerator, global::System.IDisposable
		{
			private int <>1__state;

			private Token <>2__current;

			private int <>l__initialThreadId;

			private global::System.Collections.Generic.IEnumerable<Token> tokens;

			public global::System.Collections.Generic.IEnumerable<Token> <>3__tokens;

			private MultiTokenWaiter <waiter>5__2;

			private global::System.Collections.Generic.IEnumerator<Token> <>7__wrap2;

			private global::System.Collections.Generic.IEnumerator<Token> <>7__wrap3;

			Token global::System.Collections.Generic.IEnumerator<Token>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object global::System.Collections.IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <Modify>d__1(int <>1__state)
			{
				this.<>1__state = <>1__state;
				<>l__initialThreadId = Environment.CurrentManagedThreadId;
			}

			[DebuggerHidden]
			void global::System.IDisposable.Dispose()
			{
				int num = <>1__state;
				if ((uint)(num - -4) > 1u && (uint)(num - 1) > 2u)
				{
					return;
				}
				try
				{
					if (num != -4 && num != 1)
					{
						return;
					}
					try
					{
					}
					finally
					{
						<>m__Finally2();
					}
				}
				finally
				{
					<>m__Finally1();
				}
			}

			private bool MoveNext()
			{
				//IL_020d: Unknown result type (might be due to invalid IL or missing references)
				//IL_0217: Expected O, but got Unknown
				//IL_00bc: Unknown result type (might be due to invalid IL or missing references)
				//IL_00c6: Expected O, but got Unknown
				try
				{
					switch (<>1__state)
					{
					default:
						return false;
					case 0:
						<>1__state = -1;
						<waiter>5__2 = new MultiTokenWaiter(new Func<Token, bool>[4]
						{
							delegate(Token t)
							{
								IdentifierToken val2 = (IdentifierToken)(object)((t is IdentifierToken) ? t : null);
								return val2 != null && val2.Name == "_add_resource";
							},
							delegate(Token t)
							{
								IdentifierToken val = (IdentifierToken)(object)((t is IdentifierToken) ? t : null);
								return val != null && val.Name == "new";
							},
							delegate(Token t)
							{
								//IL_0004: Unknown result type (might be due to invalid IL or missing references)
								//IL_000a: Invalid comparison between Unknown and I4
								if (t != null && (int)t.Type == 5)
								{
									uint? associatedData = t.AssociatedData;
									if (associatedData.HasValue)
									{
										return associatedData.GetValueOrDefault() == 76;
									}
								}
								return false;
							},
							(Token t) => (int)t.Type == 89
						}, false, true);
						<>7__wrap2 = tokens.GetEnumerator();
						<>1__state = -3;
						goto IL_0246;
					case 1:
						<>1__state = -4;
						goto IL_01ea;
					case 2:
						<>1__state = -3;
						goto IL_0246;
					case 3:
						{
							<>1__state = -3;
							goto IL_0246;
						}
						IL_0246:
						if (((global::System.Collections.IEnumerator)<>7__wrap2).MoveNext())
						{
							Token current = <>7__wrap2.Current;
							if (<waiter>5__2.Check(current))
							{
								global::System.Collections.Generic.IEnumerable<Token> enumerable = global::System.Array.Empty<Token>();
								enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("if file_name.rfind(\"title_\") != -1:", 1u));
								enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("if new[\"file\"].title in titlenamedict:", 2u));
								enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("var titlename = titlenamedict[new[\"file\"].title]", 3u));
								enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("new[\"file\"].title = titlename", 3u));
								enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("new[\"file\"].name = \"Звание «\" + titlename + \"»\" ", 3u));
								enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("new[\"file\"].desc = titledescdict[new[\"file\"].desc]", 3u));
								enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("elif new[\"file\"].name == \"No Title\":", 2u));
								enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("new[\"file\"].name = \"Нет звания\" ", 3u));
								enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("new[\"file\"].desc = \"Без звания!\" ", 3u));
								<>7__wrap3 = enumerable.GetEnumerator();
								<>1__state = -4;
								goto IL_01ea;
							}
							<>2__current = current;
							<>1__state = 3;
							return true;
						}
						<>m__Finally1();
						<>7__wrap2 = null;
						return false;
						IL_01ea:
						if (((global::System.Collections.IEnumerator)<>7__wrap3).MoveNext())
						{
							Token current2 = <>7__wrap3.Current;
							<>2__current = current2;
							<>1__state = 1;
							return true;
						}
						<>m__Finally2();
						<>7__wrap3 = null;
						<>2__current = new Token((TokenType)89, (uint?)1u);
						<>1__state = 2;
						return true;
					}
				}
				catch
				{
					//try-fault
					((global::System.IDisposable)this).Dispose();
					throw;
				}
			}

			bool global::System.Collections.IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			private void <>m__Finally1()
			{
				<>1__state = -1;
				if (<>7__wrap2 != null)
				{
					((global::System.IDisposable)<>7__wrap2).Dispose();
				}
			}

			private void <>m__Finally2()
			{
				<>1__state = -3;
				if (<>7__wrap3 != null)
				{
					((global::System.IDisposable)<>7__wrap3).Dispose();
				}
			}

			[DebuggerHidden]
			void global::System.Collections.IEnumerator.Reset()
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				throw new NotSupportedException();
			}

			[DebuggerHidden]
			global::System.Collections.Generic.IEnumerator<Token> global::System.Collections.Generic.IEnumerable<Token>.GetEnumerator()
			{
				<Modify>d__1 <Modify>d__;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					<Modify>d__ = this;
				}
				else
				{
					<Modify>d__ = new <Modify>d__1(0);
				}
				<Modify>d__.tokens = <>3__tokens;
				return <Modify>d__;
			}

			[DebuggerHidden]
			global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator()
			{
				return (global::System.Collections.IEnumerator)((global::System.Collections.Generic.IEnumerable<Token>)this).GetEnumerator();
			}
		}

		public bool ShouldRun(string path)
		{
			return path == "res://Scenes/Singletons/globals.gdc";
		}

		[IteratorStateMachine(typeof(<Modify>d__1))]
		public global::System.Collections.Generic.IEnumerable<Token> Modify(string path, global::System.Collections.Generic.IEnumerable<Token> tokens)
		{
			MultiTokenWaiter waiter = new MultiTokenWaiter(new Func<Token, bool>[4]
			{
				delegate(Token t)
				{
					IdentifierToken val2 = (IdentifierToken)(object)((t is IdentifierToken) ? t : null);
					return val2 != null && val2.Name == "_add_resource";
				},
				delegate(Token t)
				{
					IdentifierToken val = (IdentifierToken)(object)((t is IdentifierToken) ? t : null);
					return val != null && val.Name == "new";
				},
				delegate(Token t)
				{
					//IL_0004: Unknown result type (might be due to invalid IL or missing references)
					//IL_000a: Invalid comparison between Unknown and I4
					if (t != null && (int)t.Type == 5)
					{
						uint? associatedData = t.AssociatedData;
						if (associatedData.HasValue)
						{
							return associatedData.GetValueOrDefault() == 76;
						}
					}
					return false;
				},
				(Token t) => (int)t.Type == 89
			}, false, true);
			global::System.Collections.Generic.IEnumerator<Token> enumerator = tokens.GetEnumerator();
			try
			{
				while (((global::System.Collections.IEnumerator)enumerator).MoveNext())
				{
					Token current = enumerator.Current;
					if (waiter.Check(current))
					{
						global::System.Collections.Generic.IEnumerable<Token> enumerable = global::System.Array.Empty<Token>();
						enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("if file_name.rfind(\"title_\") != -1:", 1u));
						enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("if new[\"file\"].title in titlenamedict:", 2u));
						enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("var titlename = titlenamedict[new[\"file\"].title]", 3u));
						enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("new[\"file\"].title = titlename", 3u));
						enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("new[\"file\"].name = \"Звание «\" + titlename + \"»\" ", 3u));
						enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("new[\"file\"].desc = titledescdict[new[\"file\"].desc]", 3u));
						enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("elif new[\"file\"].name == \"No Title\":", 2u));
						enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("new[\"file\"].name = \"Нет звания\" ", 3u));
						enumerable = Enumerable.Concat<Token>(enumerable, ScriptTokenizer.Tokenize("new[\"file\"].desc = \"Без звания!\" ", 3u));
						global::System.Collections.Generic.IEnumerator<Token> enumerator2 = enumerable.GetEnumerator();
						try
						{
							while (((global::System.Collections.IEnumerator)enumerator2).MoveNext())
							{
								yield return enumerator2.Current;
							}
						}
						finally
						{
							((global::System.IDisposable)enumerator2)?.Dispose();
						}
						yield return new Token((TokenType)89, (uint?)1u);
					}
					else
					{
						yield return current;
					}
				}
			}
			finally
			{
				((global::System.IDisposable)enumerator)?.Dispose();
			}
		}
	}
	public class Voice : IScriptMod
	{
		[CompilerGenerated]
		private sealed class <Modify>d__1 : global::System.Collections.Generic.IEnumerable<Token>, global::System.Collections.IEnumerable, global::System.Collections.Generic.IEnumerator<Token>, global::System.Collections.IEnumerator, global::System.IDisposable
		{
			private int <>1__state;

			private Token <>2__current;

			private int <>l__initialThreadId;

			private global::System.Collections.Generic.IEnumerable<Token> tokens;

			public global::System.Collections.Generic.IEnumerable<Token> <>3__tokens;

			private MultiTokenWaiter <waiter>5__2;

			private global::System.Collections.Generic.IEnumerator<Token> <>7__wrap2;

			Token global::System.Collections.Generic.IEnumerator<Token>.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			object global::System.Collections.IEnumerator.Current
			{
				[DebuggerHidden]
				get
				{
					return <>2__current;
				}
			}

			[DebuggerHidden]
			public <Modify>d__1(int <>1__state)
			{
				this.<>1__state = <>1__state;
				<>l__initialThreadId = Environment.CurrentManagedThreadId;
			}

			[DebuggerHidden]
			void global::System.IDisposable.Dispose()
			{
				int num = <>1__state;
				if (num == -3 || (uint)(num - 1) <= 1u)
				{
					try
					{
					}
					finally
					{
						<>m__Finally1();
					}
				}
			}

			private bool MoveNext()
			{
				//IL_011f: Unknown result type (might be due to invalid IL or missing references)
				//IL_0129: Expected O, but got Unknown
				//IL_0124: Unknown result type (might be due to invalid IL or missing references)
				//IL_012e: Expected O, but got Unknown
				//IL_00da: Unknown result type (might be due to invalid IL or missing references)
				//IL_00e4: Expected O, but got Unknown
				try
				{
					switch (<>1__state)
					{
					default:
						return false;
					case 0:
						<>1__state = -1;
						<waiter>5__2 = new MultiTokenWaiter(new Func<Token, bool>[5]
						{
							delegate(Token t)
							{
								IdentifierToken val3 = (IdentifierToken)(object)((t is IdentifierToken) ? t : null);
								return val3 != null && val3.Name == "_generate_voice_bank";
							},
							delegate(Token t)
							{
								IdentifierToken val2 = (IdentifierToken)(object)((t is IdentifierToken) ? t : null);
								return val2 != null && val2.Name == "voice_bank";
							},
							delegate(Token t)
							{
								IdentifierToken val = (IdentifierToken)(object)((t is IdentifierToken) ? t : null);
								return val != null && val.Name == "path";
							},
							(Token t) => (int)t.Type == 23,
							(Token t) => t is ConstantToken
						}, false, true);
						<>7__wrap2 = tokens.GetEnumerator();
						<>1__state = -3;
						break;
					case 1:
						<>1__state = -3;
						break;
					case 2:
						<>1__state = -3;
						break;
					}
					if (((global::System.Collections.IEnumerator)<>7__wrap2).MoveNext())
					{
						Token current = <>7__wrap2.Current;
						if (<waiter>5__2.Check(current))
						{
							<>2__current = (Token)new ConstantToken((Variant)new StringVariant("res://mods/WFRus/RuVoice/"));
							<>1__state = 1;
							return true;
						}
						<>2__current = current;
						<>1__state = 2;
						return true;
					}
					<>m__Finally1();
					<>7__wrap2 = null;
					return false;
				}
				catch
				{
					//try-fault
					((global::System.IDisposable)this).Dispose();
					throw;
				}
			}

			bool global::System.Collections.IEnumerator.MoveNext()
			{
				//ILSpy generated this explicit interface implementation from .override directive in MoveNext
				return this.MoveNext();
			}

			private void <>m__Finally1()
			{
				<>1__state = -1;
				if (<>7__wrap2 != null)
				{
					((global::System.IDisposable)<>7__wrap2).Dispose();
				}
			}

			[DebuggerHidden]
			void global::System.Collections.IEnumerator.Reset()
			{
				//IL_0000: Unknown result type (might be due to invalid IL or missing references)
				throw new NotSupportedException();
			}

			[DebuggerHidden]
			global::System.Collections.Generic.IEnumerator<Token> global::System.Collections.Generic.IEnumerable<Token>.GetEnumerator()
			{
				<Modify>d__1 <Modify>d__;
				if (<>1__state == -2 && <>l__initialThreadId == Environment.CurrentManagedThreadId)
				{
					<>1__state = 0;
					<Modify>d__ = this;
				}
				else
				{
					<Modify>d__ = new <Modify>d__1(0);
				}
				<Modify>d__.tokens = <>3__tokens;
				return <Modify>d__;
			}

			[DebuggerHidden]
			global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator()
			{
				return (global::System.Collections.IEnumerator)((global::System.Collections.Generic.IEnumerable<Token>)this).GetEnumerator();
			}
		}

		public bool ShouldRun(string path)
		{
			return path == "res://Scenes/Singletons/globals.gdc";
		}

		[IteratorStateMachine(typeof(<Modify>d__1))]
		public global::System.Collections.Generic.IEnumerable<Token> Modify(string path, global::System.Collections.Generic.IEnumerable<Token> tokens)
		{
			MultiTokenWaiter waiter = new MultiTokenWaiter(new Func<Token, bool>[5]
			{
				delegate(Token t)
				{
					IdentifierToken val3 = (IdentifierToken)(object)((t is IdentifierToken) ? t : null);
					return val3 != null && val3.Name == "_generate_voice_bank";
				},
				delegate(Token t)
				{
					IdentifierToken val2 = (Id