using System; using System.Diagnostics; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using BepInEx; using BepInEx.Configuration; using Microsoft.CodeAnalysis; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] [assembly: AssemblyCompany("PeasFishing")] [assembly: AssemblyConfiguration("Release")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("PeasFishing")] [assembly: AssemblyTitle("PeasFishing")] [assembly: AssemblyVersion("1.0.0.0")] [module: RefSafetyRules(11)] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Embedded] [AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)] internal sealed class RefSafetyRulesAttribute : Attribute { public readonly int Version; public RefSafetyRulesAttribute(int P_0) { Version = P_0; } } } namespace PeasFishing { [BepInPlugin("peaskeepers.peasfishing", "PeasFishing", "0.6.1")] public sealed class PeasFishingPlugin : BaseUnityPlugin { public const string PluginGuid = "peaskeepers.peasfishing"; public const string PluginName = "PeasFishing"; public const string PluginVersion = "0.6.1"; internal static PeasFishingPlugin Instance; internal static ConfigEntry Enabled; internal static ConfigEntry RaiseKey; internal static ConfigEntry Difficulty; internal static ConfigEntry BarSize; internal static ConfigEntry FillSeconds; internal static ConfigEntry DrainSeconds; internal static ConfigEntry CatchSpeedMultiplier; internal static ConfigEntry LiftAcceleration; internal static ConfigEntry GravityAcceleration; internal static ConfigEntry MaxBarSpeed; internal static ConfigEntry BarDamping; internal static ConfigEntry BottomBounce; internal static ConfigEntry ShowUI; internal static ConfigEntry UIScale; internal static ConfigEntry NearbyFishRadius; internal static ConfigEntry ShiftHookAssist; internal static ConfigEntry ShowWorldClock; private FishingFloat _bobber; private Fish _fish; private bool _active; private float _scanTimer; private float _fishY = 0.65f; private float _fishVelocity; private float _fishTarget = 0.65f; private float _targetTimer; private float _barY = 0.35f; private float _barVelocity; private float _progress = 0.25f; private float _resultTimer; private string _resultText = ""; private string _caughtName = ""; private float _biteFlashTimer; private int _nearbyFishCount; private int _interestedFishCount; private float _fishScanTimer; private float _barVisualY; private Texture2D _circleTex; private float _worldClockScanTimer; private float _worldDayFraction = -1f; private int _worldDay = -1; private float _oldHookedStamina = -1f; private float _oldPullStamina = -1f; private float _oldFishStamina = -1f; private float _oldFishEscapeStamina = -1f; private void Awake() { //IL_0086: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Expected O, but got Unknown //IL_00c3: Unknown result type (might be due to invalid IL or missing references) //IL_00cd: Expected O, but got Unknown //IL_0100: Unknown result type (might be due to invalid IL or missing references) //IL_010a: Expected O, but got Unknown //IL_013d: Unknown result type (might be due to invalid IL or missing references) //IL_0147: Expected O, but got Unknown //IL_017a: Unknown result type (might be due to invalid IL or missing references) //IL_0184: Expected O, but got Unknown //IL_01b7: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: Expected O, but got Unknown //IL_01f4: Unknown result type (might be due to invalid IL or missing references) //IL_01fe: Expected O, but got Unknown //IL_0231: Unknown result type (might be due to invalid IL or missing references) //IL_023b: Expected O, but got Unknown //IL_026e: Unknown result type (might be due to invalid IL or missing references) //IL_0278: Expected O, but got Unknown //IL_02ab: Unknown result type (might be due to invalid IL or missing references) //IL_02b5: Expected O, but got Unknown //IL_0308: Unknown result type (might be due to invalid IL or missing references) //IL_0312: Expected O, but got Unknown //IL_0345: Unknown result type (might be due to invalid IL or missing references) //IL_034f: Expected O, but got Unknown Instance = this; _circleTex = CreateCircleTexture(64); Enabled = ((BaseUnityPlugin)this).Config.Bind("General", "Enabled", true, "Enable PeasFishing."); RaiseKey = ((BaseUnityPlugin)this).Config.Bind("Controls", "Raise Bar Key", (KeyCode)304, "Hold this key to raise the green catch bar; release it to let the bar fall."); Difficulty = ((BaseUnityPlugin)this).Config.Bind("Gameplay", "Difficulty", 0.75f, new ConfigDescription("Fish movement difficulty. Lower is easier.", (AcceptableValueBase)(object)new AcceptableValueRange(0.25f, 2f), Array.Empty())); BarSize = ((BaseUnityPlugin)this).Config.Bind("Gameplay", "Bar Size", 0.3f, new ConfigDescription("Height of the green catch bar (0-1 of track).", (AcceptableValueBase)(object)new AcceptableValueRange(0.15f, 0.6f), Array.Empty())); FillSeconds = ((BaseUnityPlugin)this).Config.Bind("Gameplay", "Seconds To Catch", 5f, new ConfigDescription("Approximate time inside the bar needed for a catch.", (AcceptableValueBase)(object)new AcceptableValueRange(2f, 15f), Array.Empty())); DrainSeconds = ((BaseUnityPlugin)this).Config.Bind("Gameplay", "Seconds To Lose", 8f, new ConfigDescription("Approximate time outside the bar needed to lose from full meter.", (AcceptableValueBase)(object)new AcceptableValueRange(3f, 30f), Array.Empty())); CatchSpeedMultiplier = ((BaseUnityPlugin)this).Config.Bind("Gameplay", "Catch Speed Multiplier", 1.35f, new ConfigDescription("How quickly the catch meter fills while the fish is inside the bar.", (AcceptableValueBase)(object)new AcceptableValueRange(0.5f, 3f), Array.Empty())); LiftAcceleration = ((BaseUnityPlugin)this).Config.Bind("Bar Physics", "Lift Acceleration", 2.15f, new ConfigDescription("Upward acceleration while holding the raise key. Lower feels heavier.", (AcceptableValueBase)(object)new AcceptableValueRange(0.75f, 5f), Array.Empty())); GravityAcceleration = ((BaseUnityPlugin)this).Config.Bind("Bar Physics", "Gravity Acceleration", 2.75f, new ConfigDescription("Downward acceleration after releasing the key.", (AcceptableValueBase)(object)new AcceptableValueRange(0.75f, 6f), Array.Empty())); MaxBarSpeed = ((BaseUnityPlugin)this).Config.Bind("Bar Physics", "Max Bar Speed", 0.92f, new ConfigDescription("Maximum bar movement speed.", (AcceptableValueBase)(object)new AcceptableValueRange(0.35f, 2f), Array.Empty())); BarDamping = ((BaseUnityPlugin)this).Config.Bind("Bar Physics", "Bar Damping", 0.55f, new ConfigDescription("Resistance applied to the bar velocity. Higher values feel heavier and smoother.", (AcceptableValueBase)(object)new AcceptableValueRange(0f, 2.5f), Array.Empty())); BottomBounce = ((BaseUnityPlugin)this).Config.Bind("Bar Physics", "Bottom Bounce", 0.26f, new ConfigDescription("Bounce strength when the bar hits the bottom, Stardew-style.", (AcceptableValueBase)(object)new AcceptableValueRange(0f, 0.75f), Array.Empty())); ShowUI = ((BaseUnityPlugin)this).Config.Bind("UI", "Show UI", true, "Show the PeasFishing minigame interface."); UIScale = ((BaseUnityPlugin)this).Config.Bind("UI", "UI Scale", 1f, new ConfigDescription("Scale of the fishing minigame interface.", (AcceptableValueBase)(object)new AcceptableValueRange(0.75f, 1.5f), Array.Empty())); NearbyFishRadius = ((BaseUnityPlugin)this).Config.Bind("Fishing Info", "Nearby Fish Radius", 20f, new ConfigDescription("Radius used by the nearby-fish display.", (AcceptableValueBase)(object)new AcceptableValueRange(5f, 40f), Array.Empty())); ShiftHookAssist = ((BaseUnityPlugin)this).Config.Bind("Controls", "Shift Hook Assist", true, "Allows the same raise key to help hook/reel once a fish is on the float."); ShowWorldClock = ((BaseUnityPlugin)this).Config.Bind("World Clock", "Show World Clock", true, "Always show the Valheim world day/time clock at the top-centre of the screen."); ((BaseUnityPlugin)this).Logger.LogInfo((object)"PeasFishing 0.6.1 loaded."); } private void OnDestroy() { EndSession(); if ((Object)(object)_circleTex != (Object)null) { Object.Destroy((Object)(object)_circleTex); } } private void Update() { UpdateWorldClock(); UpdateFishingAwareness(); TryShiftHookAssist(); if (_resultTimer > 0f) { _resultTimer -= Time.deltaTime; if (_resultTimer <= 0f) { _resultText = ""; _caughtName = ""; } } if (_biteFlashTimer > 0f) { _biteFlashTimer -= Time.deltaTime; } if (!_active) { _scanTimer -= Time.deltaTime; if (_scanTimer <= 0f) { _scanTimer = 0.2f; TryFindHookedFish(); } return; } if (!Enabled.Value || (Object)(object)Player.m_localPlayer == (Object)null || (Object)(object)_bobber == (Object)null || (Object)(object)_fish == (Object)null) { EndSession(); return; } Fish val = null; try { val = _bobber.GetCatch(); } catch { } if ((Object)(object)val == (Object)null) { EndSession(); return; } float num = Mathf.Min(Time.deltaTime, 0.05f); UpdateFish(num); UpdateBar(num); float num2 = BarSize.Value * 0.5f; bool flag = Mathf.Abs(_fishY - _barY) <= num2; float num3 = num / Mathf.Max(0.1f, FillSeconds.Value) * CatchSpeedMultiplier.Value; float num4 = num / Mathf.Max(0.1f, DrainSeconds.Value); _progress = Mathf.Clamp01(_progress + (flag ? num3 : (0f - num4))); if (_progress >= 1f) { CatchFish(); } else if (_progress <= 0f) { LoseFish(); } } private void TryFindHookedFish() { //IL_0107: Unknown result type (might be due to invalid IL or missing references) //IL_0116: Unknown result type (might be due to invalid IL or missing references) if (!Enabled.Value || (Object)(object)Player.m_localPlayer == (Object)null) { return; } FishingFloat[] array = Object.FindObjectsByType((FindObjectsSortMode)0); foreach (FishingFloat val in array) { if ((Object)(object)val == (Object)null) { continue; } Character val2 = null; Fish val3 = null; try { MethodInfo methodInfo = ((object)val).GetType().GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic).FirstOrDefault((MethodInfo m) => m.GetParameters().Length == 0 && typeof(Character).IsAssignableFrom(m.ReturnType) && (m.Name.IndexOf("owner", StringComparison.OrdinalIgnoreCase) >= 0 || m.Name.IndexOf("character", StringComparison.OrdinalIgnoreCase) >= 0)); if (methodInfo != null) { object? obj = methodInfo.Invoke(val, null); val2 = (Character)((obj is Character) ? obj : null); } if ((Object)(object)val2 == (Object)null) { FieldInfo fieldInfo = ((object)val).GetType().GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic).FirstOrDefault((FieldInfo f) => typeof(Character).IsAssignableFrom(f.FieldType) && f.Name.IndexOf("owner", StringComparison.OrdinalIgnoreCase) >= 0); if (fieldInfo != null) { object? value = fieldInfo.GetValue(val); val2 = (Character)((value is Character) ? value : null); } } } catch { } if ((Object)(object)val2 != (Object)null && (Object)(object)val2 != (Object)(object)Player.m_localPlayer) { continue; } if ((Object)(object)val2 == (Object)null) { try { if (Vector3.Distance(((Component)val).transform.position, ((Component)Player.m_localPlayer).transform.position) > 80f) { continue; } } catch { continue; } } try { val3 = val.GetCatch(); } catch { } if (!((Object)(object)val3 == (Object)null)) { BeginSession(val, val3); break; } } } private void BeginSession(FishingFloat bobber, Fish fish) { if (!_active && !((Object)(object)bobber == (Object)null) && !((Object)(object)fish == (Object)null)) { _bobber = bobber; _fish = fish; _active = true; _progress = 0.25f; _fishY = Random.Range(0.35f, 0.75f); _fishTarget = Random.Range(0.2f, 0.85f); _fishVelocity = 0f; _barY = 0.35f; _barVelocity = 0f; _targetTimer = 0f; _resultText = ""; _caughtName = ""; _resultTimer = 0f; _biteFlashTimer = 1.15f; try { _oldHookedStamina = bobber.m_hookedStaminaPerSec; _oldPullStamina = bobber.m_pullStaminaUse; bobber.m_hookedStaminaPerSec = 0f; bobber.m_pullStaminaUse = 0f; } catch { } try { _oldFishStamina = fish.m_staminaUse; _oldFishEscapeStamina = fish.m_escapeStaminaUse; fish.m_staminaUse = 0f; fish.m_escapeStaminaUse = 0f; } catch { } ((BaseUnityPlugin)this).Logger.LogInfo((object)"Fishing minigame started."); } } private void UpdateFish(float dt) { _targetTimer -= dt; float value = Difficulty.Value; if (_targetTimer <= 0f) { _targetTimer = Random.Range(0.25f, 0.75f) / Mathf.Max(0.25f, value); float num = Mathf.Clamp01(0.32f + value * 0.18f); _fishTarget = Mathf.Clamp01(_fishY + Random.Range(0f - num, num)); if (Random.value < 0.18f * value) { _fishTarget = ((Random.value < 0.5f) ? 0.08f : 0.92f); } } float num2 = Mathf.Lerp(2.4f, 8.5f, Mathf.InverseLerp(0.25f, 2f, value)); _fishVelocity += Mathf.Sign(_fishTarget - _fishY) * num2 * dt; _fishVelocity *= Mathf.Pow(0.25f, dt); _fishVelocity = Mathf.Clamp(_fishVelocity, -1.8f * value, 1.8f * value); _fishY = Mathf.Clamp01(_fishY + _fishVelocity * dt); if (_fishY <= 0f || _fishY >= 1f) { _fishVelocity *= -0.45f; } } private void UpdateBar(float dt) { //IL_0005: Unknown result type (might be due to invalid IL or missing references) float num = (Input.GetKey(RaiseKey.Value) ? LiftAcceleration.Value : (0f - GravityAcceleration.Value)); _barVelocity += num * dt; _barVelocity = Mathf.MoveTowards(_barVelocity, 0f, BarDamping.Value * dt); _barVelocity = Mathf.Clamp(_barVelocity, 0f - MaxBarSpeed.Value, MaxBarSpeed.Value); float num2 = Mathf.Clamp(BarSize.Value * 0.5f, 0.02f, 0.48f); _barY += _barVelocity * dt; if (_barY <= num2) { _barY = num2; if (_barVelocity < 0f) { _barVelocity = (0f - _barVelocity) * BottomBounce.Value; } } else if (_barY >= 1f - num2) { _barY = 1f - num2; if (_barVelocity > 0f) { _barVelocity *= -0.08f; } } } private void CatchFish() { //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_0048: Unknown result type (might be due to invalid IL or missing references) //IL_0052: Unknown result type (might be due to invalid IL or missing references) //IL_0057: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) //IL_006b: Unknown result type (might be due to invalid IL or missing references) //IL_0070: Unknown result type (might be due to invalid IL or missing references) //IL_0093: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) _caughtName = GetFishDisplayName(_fish); bool flag = TryPickupFish(_fish); if (!flag && (Object)(object)Player.m_localPlayer != (Object)null) { Vector3 position = ((Component)Player.m_localPlayer).transform.position + ((Component)Player.m_localPlayer).transform.forward * 1.1f + Vector3.up * 0.8f; try { ((Component)_fish).transform.position = position; } catch { } try { ((Component)_bobber).transform.position = position; } catch { } } _resultText = (flag ? "You caught:" : "Catch complete:"); _resultTimer = 2.8f; EndSession(); } private string GetFishDisplayName(Fish fish) { if ((Object)(object)fish == (Object)null) { return "Fish"; } try { FieldInfo field = ((object)fish).GetType().GetField("m_itemDrop", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); object obj = ((field != null) ? field.GetValue(fish) : null); if (obj != null) { FieldInfo field2 = obj.GetType().GetField("m_itemData", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); object obj2 = ((field2 != null) ? field2.GetValue(obj) : null); if (obj2 != null) { FieldInfo field3 = obj2.GetType().GetField("m_shared", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); object obj3 = ((field3 != null) ? field3.GetValue(obj2) : null); if (obj3 != null) { FieldInfo field4 = obj3.GetType().GetField("m_name", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic); string text = ((field4 != null) ? (field4.GetValue(obj3) as string) : null); if (!string.IsNullOrEmpty(text)) { string text2 = text.TrimStart(new char[1] { '$' }).Replace("_", " ").Trim(); if (!string.IsNullOrEmpty(text2)) { return text2; } } } } } } catch { } try { string text3 = ((Object)((Component)fish).gameObject).name; int num = text3.IndexOf("(Clone)", StringComparison.OrdinalIgnoreCase); if (num >= 0) { text3 = text3.Substring(0, num); } text3 = text3.Replace("_", " ").Trim(); if (!string.IsNullOrEmpty(text3)) { return text3; } } catch { } return "Fish"; } private bool TryPickupFish(Fish fish) { try { Player player = Player.m_localPlayer; if ((Object)(object)player == (Object)null || (Object)(object)fish == (Object)null) { return false; } MethodInfo methodInfo = ((object)fish).GetType().GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic).FirstOrDefault(delegate(MethodInfo m) { if (m.Name != "Pickup") { return false; } ParameterInfo[] parameters = m.GetParameters(); return parameters.Length == 1 && parameters[0].ParameterType.IsAssignableFrom(((object)player).GetType()); }); if (methodInfo == null) { return false; } object obj = methodInfo.Invoke(fish, new object[1] { player }); return !(obj is bool) || (bool)obj; } catch (Exception ex) { ((BaseUnityPlugin)this).Logger.LogWarning((object)("Direct fish pickup failed; using reel-in fallback: " + ex.Message)); return false; } } private void LoseFish() { try { if ((Object)(object)_bobber != (Object)null) { MethodInfo methodInfo = ((object)_bobber).GetType().GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic).FirstOrDefault(delegate(MethodInfo m) { if (m.Name != "SetCatch") { return false; } ParameterInfo[] parameters = m.GetParameters(); return parameters.Length == 1 && typeof(Fish).IsAssignableFrom(parameters[0].ParameterType); }); if (methodInfo != null) { methodInfo.Invoke(_bobber, new object[1]); } } } catch (Exception ex) { ((BaseUnityPlugin)this).Logger.LogWarning((object)("Could not release fish cleanly: " + ex.Message)); } _resultText = "The fish got away!"; _resultTimer = 2f; EndSession(); } private void EndSession() { if ((Object)(object)_bobber != (Object)null) { try { if (_oldHookedStamina >= 0f) { _bobber.m_hookedStaminaPerSec = _oldHookedStamina; } if (_oldPullStamina >= 0f) { _bobber.m_pullStaminaUse = _oldPullStamina; } } catch { } } if ((Object)(object)_fish != (Object)null) { try { if (_oldFishStamina >= 0f) { _fish.m_staminaUse = _oldFishStamina; } if (_oldFishEscapeStamina >= 0f) { _fish.m_escapeStaminaUse = _oldFishEscapeStamina; } } catch { } } _active = false; _bobber = null; _fish = null; _oldHookedStamina = -1f; _oldPullStamina = -1f; _oldFishStamina = -1f; _oldFishEscapeStamina = -1f; } private void UpdateFishingAwareness() { //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_0064: Unknown result type (might be due to invalid IL or missing references) //IL_00e8: Unknown result type (might be due to invalid IL or missing references) //IL_00ee: Unknown result type (might be due to invalid IL or missing references) //IL_010c: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) if ((Object)(object)Player.m_localPlayer == (Object)null) { _nearbyFishCount = 0; _interestedFishCount = 0; return; } _fishScanTimer -= Time.deltaTime; if (_fishScanTimer > 0f) { return; } _fishScanTimer = 0.35f; try { Fish[] source = Object.FindObjectsByType((FindObjectsSortMode)0); Vector3 playerPos = ((Component)Player.m_localPlayer).transform.position; float radius = NearbyFishRadius.Value; _nearbyFishCount = source.Count((Fish f) => (Object)(object)f != (Object)null && Vector3.Distance(((Component)f).transform.position, playerPos) <= radius); _interestedFishCount = 0; FishingFloat val = (from f in Object.FindObjectsByType((FindObjectsSortMode)0) where (Object)(object)f != (Object)null orderby Vector3.Distance(((Component)f).transform.position, playerPos) select f).FirstOrDefault(); if ((Object)(object)val != (Object)null && Vector3.Distance(((Component)val).transform.position, playerPos) <= 80f) { Vector3 baitPos = ((Component)val).transform.position; _interestedFishCount = source.Count((Fish f) => (Object)(object)f != (Object)null && Vector3.Distance(((Component)f).transform.position, baitPos) <= 6f); } } catch { _nearbyFishCount = 0; _interestedFishCount = 0; } } private bool TryShiftHookAssist() { //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0053: Unknown result type (might be due to invalid IL or missing references) //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) if (!ShiftHookAssist.Value || (Object)(object)Player.m_localPlayer == (Object)null || _active) { return false; } if (!Input.GetKeyDown(RaiseKey.Value)) { return false; } try { FishingFloat[] source = Object.FindObjectsByType((FindObjectsSortMode)0); Vector3 pos = ((Component)Player.m_localPlayer).transform.position; FishingFloat val = (from f in source where (Object)(object)f != (Object)null orderby Vector3.Distance(((Component)f).transform.position, pos) select f).FirstOrDefault(); if ((Object)(object)val == (Object)null || Vector3.Distance(((Component)val).transform.position, pos) > 80f) { return false; } MethodInfo methodInfo = ((object)val).GetType().GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic).FirstOrDefault((MethodInfo m) => m.GetParameters().Length == 0 && (m.Name.IndexOf("hook", StringComparison.OrdinalIgnoreCase) >= 0 || m.Name.IndexOf("reel", StringComparison.OrdinalIgnoreCase) >= 0 || m.Name.IndexOf("pull", StringComparison.OrdinalIgnoreCase) >= 0)); if (methodInfo != null) { methodInfo.Invoke(val, null); return true; } } catch { } return false; } private void UpdateWorldClock() { _worldClockScanTimer -= Time.deltaTime; if (_worldClockScanTimer > 0f) { return; } _worldClockScanTimer = 0.35f; try { Type type = typeof(Player).Assembly.GetType("EnvMan"); if (type == null) { return; } object obj = null; FieldInfo field = type.GetField("instance", BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic); if (field != null) { obj = field.GetValue(null); } if (obj == null) { PropertyInfo property = type.GetProperty("instance", BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic); if (property != null) { obj = property.GetValue(null, null); } } if (obj == null) { return; } MethodInfo methodInfo = type.GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic).FirstOrDefault((MethodInfo m) => m.GetParameters().Length == 0 && (m.Name.Equals("GetDayFraction", StringComparison.OrdinalIgnoreCase) || m.Name.IndexOf("dayfraction", StringComparison.OrdinalIgnoreCase) >= 0)); if (methodInfo != null) { object obj2 = methodInfo.Invoke(obj, null); if (obj2 != null) { _worldDayFraction = Mathf.Repeat(Convert.ToSingle(obj2), 1f); } } MethodInfo methodInfo2 = type.GetMethods(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic).FirstOrDefault((MethodInfo m) => m.GetParameters().Length == 0 && (m.Name.Equals("GetCurrentDay", StringComparison.OrdinalIgnoreCase) || m.Name.Equals("GetDay", StringComparison.OrdinalIgnoreCase))); if (methodInfo2 != null) { object obj3 = methodInfo2.Invoke(obj, null); if (obj3 != null) { _worldDay = Convert.ToInt32(obj3); } return; } FieldInfo fieldInfo = type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic).FirstOrDefault((FieldInfo f) => (f.FieldType == typeof(int) || f.FieldType == typeof(long)) && f.Name.IndexOf("day", StringComparison.OrdinalIgnoreCase) >= 0); if (fieldInfo != null) { object value = fieldInfo.GetValue(obj); if (value != null) { _worldDay = Convert.ToInt32(value); } } } catch { } } private void DrawSunIcon(Rect r) { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_005c: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Unknown result type (might be due to invalid IL or missing references) //IL_0069: 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_00a3: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_0114: Unknown result type (might be due to invalid IL or missing references) //IL_0119: Unknown result type (might be due to invalid IL or missing references) //IL_0164: Unknown result type (might be due to invalid IL or missing references) //IL_0169: Unknown result type (might be due to invalid IL or missing references) Color color = default(Color); ((Color)(ref color))..ctor(1f, 0.72f, 0.16f, 1f); float num = Mathf.Max(2f, ((Rect)(ref r)).width * 0.07f); DrawRect(new Rect(((Rect)(ref r)).center.x - num * 0.5f, ((Rect)(ref r)).y, num, ((Rect)(ref r)).height * 0.2f), color); DrawRect(new Rect(((Rect)(ref r)).center.x - num * 0.5f, ((Rect)(ref r)).yMax - ((Rect)(ref r)).height * 0.2f, num, ((Rect)(ref r)).height * 0.2f), color); DrawRect(new Rect(((Rect)(ref r)).x, ((Rect)(ref r)).center.y - num * 0.5f, ((Rect)(ref r)).width * 0.2f, num), color); DrawRect(new Rect(((Rect)(ref r)).xMax - ((Rect)(ref r)).width * 0.2f, ((Rect)(ref r)).center.y - num * 0.5f, ((Rect)(ref r)).width * 0.2f, num), color); DrawEllipse(new Rect(((Rect)(ref r)).x + ((Rect)(ref r)).width * 0.22f, ((Rect)(ref r)).y + ((Rect)(ref r)).height * 0.22f, ((Rect)(ref r)).width * 0.56f, ((Rect)(ref r)).height * 0.56f), color); } private void DrawMoonIcon(Rect r, Color cutout) { //IL_0060: Unknown result type (might be due to invalid IL or missing references) //IL_0065: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) Color color = default(Color); ((Color)(ref color))..ctor(0.78f, 0.88f, 1f, 1f); DrawEllipse(new Rect(((Rect)(ref r)).x + ((Rect)(ref r)).width * 0.12f, ((Rect)(ref r)).y + ((Rect)(ref r)).height * 0.1f, ((Rect)(ref r)).width * 0.72f, ((Rect)(ref r)).height * 0.78f), color); DrawEllipse(new Rect(((Rect)(ref r)).x + ((Rect)(ref r)).width * 0.35f, ((Rect)(ref r)).y + ((Rect)(ref r)).height * 0.02f, ((Rect)(ref r)).width * 0.65f, ((Rect)(ref r)).height * 0.72f), cutout); } private void DrawWorldClockGUI() { //IL_00ce: Unknown result type (might be due to invalid IL or missing references) //IL_00d0: Unknown result type (might be due to invalid IL or missing references) //IL_00d1: Unknown result type (might be due to invalid IL or missing references) //IL_00d2: Unknown result type (might be due to invalid IL or missing references) //IL_0167: Unknown result type (might be due to invalid IL or missing references) //IL_0169: Unknown result type (might be due to invalid IL or missing references) //IL_015d: Unknown result type (might be due to invalid IL or missing references) //IL_01d2: Unknown result type (might be due to invalid IL or missing references) //IL_01e7: Unknown result type (might be due to invalid IL or missing references) //IL_021f: Unknown result type (might be due to invalid IL or missing references) //IL_0251: Unknown result type (might be due to invalid IL or missing references) //IL_02a8: Unknown result type (might be due to invalid IL or missing references) //IL_028d: Unknown result type (might be due to invalid IL or missing references) //IL_02e0: Unknown result type (might be due to invalid IL or missing references) if (ShowWorldClock.Value && !((Object)(object)Player.m_localPlayer == (Object)null)) { float num = Mathf.Clamp(UIScale.Value, 0.75f, 1.5f); float num2 = (float)Screen.width / num; Color woodDark = default(Color); ((Color)(ref woodDark))..ctor(0.105f, 0.055f, 0.02f, 0.96f); Color val = default(Color); ((Color)(ref val))..ctor(0.3f, 0.155f, 0.055f, 0.96f); Color woodLight = default(Color); ((Color)(ref woodLight))..ctor(0.73f, 0.43f, 0.16f, 1f); Color color = default(Color); ((Color)(ref color))..ctor(0.98f, 0.89f, 0.69f, 1f); Rect r = default(Rect); ((Rect)(ref r))..ctor(num2 * 0.5f - 118f, 14f, 236f, 48f); DrawWoodPanel(r, woodDark, val, woodLight); float num3 = ((_worldDayFraction >= 0f) ? _worldDayFraction : 0f); int num4 = Mathf.FloorToInt(num3 * 24f * 60f); int num5 = num4 / 60 % 24; int num6 = num4 % 60; bool flag = num3 >= 0.19f && num3 < 0.79f; Rect r2 = default(Rect); ((Rect)(ref r2))..ctor(((Rect)(ref r)).x + 12f, ((Rect)(ref r)).y + 8f, 32f, 32f); if (flag) { DrawSunIcon(r2); } else { DrawMoonIcon(r2, val); } string text = ((_worldDay >= 0) ? ("DAY " + _worldDay) : "WORLD"); string text2 = ((_worldDayFraction >= 0f) ? (num5.ToString("00") + ":" + num6.ToString("00")) : "--:--"); GUIStyle val2 = MakeStyle(11, (TextAnchor)4, (FontStyle)1, color); val2.wordWrap = false; GUIStyle val3 = MakeStyle(19, (TextAnchor)4, (FontStyle)1, Color.white); val3.wordWrap = false; GUI.Label(new Rect(((Rect)(ref r)).x + 50f, ((Rect)(ref r)).y + 4f, 78f, 18f), text, val2); GUI.Label(new Rect(((Rect)(ref r)).x + 48f, ((Rect)(ref r)).y + 20f, 82f, 24f), text2, val3); string text3 = (flag ? "DAYLIGHT" : "NIGHT"); GUIStyle val4 = MakeStyle(10, (TextAnchor)4, (FontStyle)1, flag ? new Color(1f, 0.76f, 0.24f, 1f) : new Color(0.72f, 0.84f, 1f, 1f)); val4.wordWrap = false; GUI.Label(new Rect(((Rect)(ref r)).x + 136f, ((Rect)(ref r)).y + 13f, 88f, 22f), text3, val4); } } private Texture2D CreateCircleTexture(int size) { //IL_0004: Unknown result type (might be due to invalid IL or missing references) //IL_000a: Expected O, but got Unknown //IL_0083: Unknown result type (might be due to invalid IL or missing references) //IL_0088: Unknown result type (might be due to invalid IL or missing references) Texture2D val = new Texture2D(size, size, (TextureFormat)5, false); ((Texture)val).wrapMode = (TextureWrapMode)1; ((Texture)val).filterMode = (FilterMode)1; Color[] array = (Color[])(object)new Color[size * size]; float num = (float)(size - 1) * 0.5f; float num2 = num - 1f; for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) { float num3 = (float)j - num; float num4 = (float)i - num; float num5 = Mathf.Sqrt(num3 * num3 + num4 * num4); float num6 = Mathf.Clamp01(num2 - num5 + 1f); array[i * size + j] = new Color(1f, 1f, 1f, num6); } } val.SetPixels(array); val.Apply(); return val; } private void DrawEllipse(Rect r, Color color) { //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0014: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) if (!((Object)(object)_circleTex == (Object)null)) { Color color2 = GUI.color; GUI.color = color; GUI.DrawTexture(r, (Texture)(object)_circleTex, (ScaleMode)0, true); GUI.color = color2; } } private void DrawStud(Rect area, float xNorm, float yNorm, Color metal) { //IL_0067: Unknown result type (might be due to invalid IL or missing references) //IL_007c: Unknown result type (might be due to invalid IL or missing references) //IL_00c2: Unknown result type (might be due to invalid IL or missing references) //IL_00c3: Unknown result type (might be due to invalid IL or missing references) float num = Mathf.Min(((Rect)(ref area)).width, ((Rect)(ref area)).height) * 0.045f; num = Mathf.Clamp(num, 5f, 10f); Rect r = default(Rect); ((Rect)(ref r))..ctor(((Rect)(ref area)).x + ((Rect)(ref area)).width * xNorm - num * 0.5f, ((Rect)(ref area)).y + ((Rect)(ref area)).height * yNorm - num * 0.5f, num, num); DrawEllipse(r, new Color(0.05f, 0.04f, 0.025f, 1f)); Rect r2 = default(Rect); ((Rect)(ref r2))..ctor(((Rect)(ref r)).x + 1f, ((Rect)(ref r)).y + 1f, ((Rect)(ref r)).width - 2f, ((Rect)(ref r)).height - 2f); DrawEllipse(r2, metal); } private void DrawPeaVikingIcon(Rect r) { //IL_012b: Unknown result type (might be due to invalid IL or missing references) //IL_0130: Unknown result type (might be due to invalid IL or missing references) //IL_0176: Unknown result type (might be due to invalid IL or missing references) //IL_017b: Unknown result type (might be due to invalid IL or missing references) //IL_01c1: Unknown result type (might be due to invalid IL or missing references) //IL_01c6: Unknown result type (might be due to invalid IL or missing references) //IL_020c: Unknown result type (might be due to invalid IL or missing references) //IL_0211: Unknown result type (might be due to invalid IL or missing references) //IL_025c: Unknown result type (might be due to invalid IL or missing references) //IL_0261: Unknown result type (might be due to invalid IL or missing references) //IL_02ad: Unknown result type (might be due to invalid IL or missing references) //IL_02b2: Unknown result type (might be due to invalid IL or missing references) //IL_02fe: Unknown result type (might be due to invalid IL or missing references) //IL_0317: Unknown result type (might be due to invalid IL or missing references) //IL_0366: Unknown result type (might be due to invalid IL or missing references) //IL_037f: Unknown result type (might be due to invalid IL or missing references) //IL_0409: Unknown result type (might be due to invalid IL or missing references) //IL_040e: Unknown result type (might be due to invalid IL or missing references) //IL_0415: Unknown result type (might be due to invalid IL or missing references) //IL_0417: Unknown result type (might be due to invalid IL or missing references) //IL_0462: Unknown result type (might be due to invalid IL or missing references) //IL_0467: Unknown result type (might be due to invalid IL or missing references) //IL_04b2: Unknown result type (might be due to invalid IL or missing references) //IL_04b7: Unknown result type (might be due to invalid IL or missing references) //IL_04fd: Unknown result type (might be due to invalid IL or missing references) //IL_0502: Unknown result type (might be due to invalid IL or missing references) //IL_0550: Unknown result type (might be due to invalid IL or missing references) //IL_0555: Unknown result type (might be due to invalid IL or missing references) //IL_058d: Unknown result type (might be due to invalid IL or missing references) //IL_0592: Unknown result type (might be due to invalid IL or missing references) //IL_05d6: Unknown result type (might be due to invalid IL or missing references) //IL_0603: Unknown result type (might be due to invalid IL or missing references) Color color = default(Color); ((Color)(ref color))..ctor(0.18f, 0.46f, 0.12f, 1f); Color color2 = default(Color); ((Color)(ref color2))..ctor(0.08f, 0.24f, 0.06f, 1f); Color color3 = default(Color); ((Color)(ref color3))..ctor(0.42f, 0.86f, 0.1f, 1f); Color color4 = default(Color); ((Color)(ref color4))..ctor(0.12f, 0.3f, 0.04f, 1f); Color color5 = default(Color); ((Color)(ref color5))..ctor(0.45f, 0.24f, 0.09f, 1f); Color color6 = default(Color); ((Color)(ref color6))..ctor(0.68f, 0.39f, 0.15f, 1f); Color color7 = default(Color); ((Color)(ref color7))..ctor(0.93f, 0.9f, 0.8f, 1f); float num = ((Rect)(ref r)).x + ((Rect)(ref r)).width * 0.5f; float num2 = ((Rect)(ref r)).y + ((Rect)(ref r)).height * 0.57f; DrawEllipse(new Rect(((Rect)(ref r)).x + ((Rect)(ref r)).width * 0.02f, num2 - ((Rect)(ref r)).height * 0.08f, ((Rect)(ref r)).width * 0.3f, ((Rect)(ref r)).height * 0.16f), color2); DrawEllipse(new Rect(((Rect)(ref r)).x + ((Rect)(ref r)).width * 0.68f, num2 - ((Rect)(ref r)).height * 0.08f, ((Rect)(ref r)).width * 0.3f, ((Rect)(ref r)).height * 0.16f), color2); DrawEllipse(new Rect(((Rect)(ref r)).x + ((Rect)(ref r)).width * 0.1f, num2 + ((Rect)(ref r)).height * 0.06f, ((Rect)(ref r)).width * 0.28f, ((Rect)(ref r)).height * 0.14f), color); DrawEllipse(new Rect(((Rect)(ref r)).x + ((Rect)(ref r)).width * 0.62f, num2 + ((Rect)(ref r)).height * 0.06f, ((Rect)(ref r)).width * 0.28f, ((Rect)(ref r)).height * 0.14f), color); DrawEllipse(new Rect(((Rect)(ref r)).x + ((Rect)(ref r)).width * 0.05f, ((Rect)(ref r)).y + ((Rect)(ref r)).height * 0.13f, ((Rect)(ref r)).width * 0.28f, ((Rect)(ref r)).height * 0.26f), color7); DrawEllipse(new Rect(((Rect)(ref r)).x + ((Rect)(ref r)).width * 0.67f, ((Rect)(ref r)).y + ((Rect)(ref r)).height * 0.13f, ((Rect)(ref r)).width * 0.28f, ((Rect)(ref r)).height * 0.26f), color7); DrawEllipse(new Rect(((Rect)(ref r)).x + ((Rect)(ref r)).width * 0.1f, ((Rect)(ref r)).y + ((Rect)(ref r)).height * 0.18f, ((Rect)(ref r)).width * 0.24f, ((Rect)(ref r)).height * 0.24f), new Color(0.2f, 0.12f, 0.06f, 1f)); DrawEllipse(new Rect(((Rect)(ref r)).x + ((Rect)(ref r)).width * 0.66f, ((Rect)(ref r)).y + ((Rect)(ref r)).height * 0.18f, ((Rect)(ref r)).width * 0.24f, ((Rect)(ref r)).height * 0.24f), new Color(0.2f, 0.12f, 0.06f, 1f)); Rect r2 = default(Rect); ((Rect)(ref r2))..ctor(((Rect)(ref r)).x + ((Rect)(ref r)).width * 0.19f, ((Rect)(ref r)).y + ((Rect)(ref r)).height * 0.34f, ((Rect)(ref r)).width * 0.62f, ((Rect)(ref r)).height * 0.55f); DrawEllipse(new Rect(((Rect)(ref r2)).x - 2f, ((Rect)(ref r2)).y + 2f, ((Rect)(ref r2)).width + 4f, ((Rect)(ref r2)).height + 4f), color4); DrawEllipse(r2, color3); DrawEllipse(new Rect(((Rect)(ref r)).x + ((Rect)(ref r)).width * 0.2f, ((Rect)(ref r)).y + ((Rect)(ref r)).height * 0.12f, ((Rect)(ref r)).width * 0.6f, ((Rect)(ref r)).height * 0.48f), color5); DrawRect(new Rect(((Rect)(ref r)).x + ((Rect)(ref r)).width * 0.18f, ((Rect)(ref r)).y + ((Rect)(ref r)).height * 0.38f, ((Rect)(ref r)).width * 0.64f, ((Rect)(ref r)).height * 0.09f), color6); DrawRect(new Rect(num - ((Rect)(ref r)).width * 0.055f, ((Rect)(ref r)).y + ((Rect)(ref r)).height * 0.12f, ((Rect)(ref r)).width * 0.11f, ((Rect)(ref r)).height * 0.35f), color6); float num3 = Mathf.Max(2f, ((Rect)(ref r)).width * 0.045f); DrawEllipse(new Rect(num - ((Rect)(ref r)).width * 0.14f - num3 * 0.5f, num2 - ((Rect)(ref r)).height * 0.01f, num3, num3), Color.black); DrawEllipse(new Rect(num + ((Rect)(ref r)).width * 0.14f - num3 * 0.5f, num2 - ((Rect)(ref r)).height * 0.01f, num3, num3), Color.black); GUI.Label(new Rect(num - ((Rect)(ref r)).width * 0.13f, num2 + ((Rect)(ref r)).height * 0.035f, ((Rect)(ref r)).width * 0.26f, ((Rect)(ref r)).height * 0.16f), "⌣", MakeStyle(Mathf.RoundToInt(Mathf.Clamp(((Rect)(ref r)).width * 0.16f, 10f, 24f)), (TextAnchor)4, (FontStyle)1, Color.black)); } private void DrawFishIcon(Rect r, Color body) { //IL_009b: Unknown result type (might be due to invalid IL or missing references) //IL_00a0: Unknown result type (might be due to invalid IL or missing references) //IL_00a7: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Unknown result type (might be due to invalid IL or missing references) //IL_00e4: Unknown result type (might be due to invalid IL or missing references) //IL_0111: Unknown result type (might be due to invalid IL or missing references) //IL_0161: Unknown result type (might be due to invalid IL or missing references) //IL_0166: Unknown result type (might be due to invalid IL or missing references) //IL_01be: Unknown result type (might be due to invalid IL or missing references) //IL_01d7: Unknown result type (might be due to invalid IL or missing references) Color color = default(Color); ((Color)(ref color))..ctor(0.03f, 0.08f, 0.11f, 1f); Rect r2 = default(Rect); ((Rect)(ref r2))..ctor(((Rect)(ref r)).x + ((Rect)(ref r)).width * 0.22f, ((Rect)(ref r)).y + ((Rect)(ref r)).height * 0.24f, ((Rect)(ref r)).width * 0.58f, ((Rect)(ref r)).height * 0.52f); DrawEllipse(new Rect(((Rect)(ref r2)).x - 2f, ((Rect)(ref r2)).y - 2f, ((Rect)(ref r2)).width + 4f, ((Rect)(ref r2)).height + 4f), color); DrawEllipse(r2, body); GUI.Label(new Rect(((Rect)(ref r)).x, ((Rect)(ref r)).y + ((Rect)(ref r)).height * 0.15f, ((Rect)(ref r)).width * 0.34f, ((Rect)(ref r)).height * 0.7f), "◀", MakeStyle(Mathf.RoundToInt(Mathf.Clamp(((Rect)(ref r)).height * 0.48f, 12f, 32f)), (TextAnchor)4, (FontStyle)1, body)); float num = Mathf.Max(2f, ((Rect)(ref r)).height * 0.075f); DrawEllipse(new Rect(((Rect)(ref r2)).xMax - ((Rect)(ref r2)).width * 0.2f, ((Rect)(ref r2)).y + ((Rect)(ref r2)).height * 0.28f, num, num), Color.black); DrawRect(new Rect(((Rect)(ref r2)).x + ((Rect)(ref r2)).width * 0.28f, ((Rect)(ref r2)).y + ((Rect)(ref r2)).height * 0.46f, ((Rect)(ref r2)).width * 0.26f, Mathf.Max(1f, ((Rect)(ref r2)).height * 0.05f)), new Color(1f, 1f, 1f, 0.55f)); } private void DrawWoodPanel(Rect r, Color woodDark, Color woodMid, Color woodLight) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_003b: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_0046: Unknown result type (might be due to invalid IL or missing references) //IL_004c: Unknown result type (might be due to invalid IL or missing references) //IL_0090: Unknown result type (might be due to invalid IL or missing references) //IL_00a9: Unknown result type (might be due to invalid IL or missing references) //IL_00d7: Unknown result type (might be due to invalid IL or missing references) //IL_00e2: Unknown result type (might be due to invalid IL or missing references) //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00f4: Unknown result type (might be due to invalid IL or missing references) //IL_00fb: Unknown result type (might be due to invalid IL or missing references) //IL_0106: Unknown result type (might be due to invalid IL or missing references) //IL_010d: Unknown result type (might be due to invalid IL or missing references) //IL_0118: Unknown result type (might be due to invalid IL or missing references) DrawRect(r, woodDark); DrawRect(new Rect(((Rect)(ref r)).x + 5f, ((Rect)(ref r)).y + 5f, ((Rect)(ref r)).width - 10f, ((Rect)(ref r)).height - 10f), woodMid); DrawBorder(r, 3f, woodLight); for (int i = 1; i < 4; i++) { float num = ((Rect)(ref r)).y + ((Rect)(ref r)).height * (float)i / 4f; DrawRect(new Rect(((Rect)(ref r)).x + 7f, num, ((Rect)(ref r)).width - 14f, 1f), new Color(0.08f, 0.04f, 0.015f, 0.35f)); } Color metal = default(Color); ((Color)(ref metal))..ctor(0.48f, 0.4f, 0.29f, 1f); DrawStud(r, 0.035f, 0.12f, metal); DrawStud(r, 0.965f, 0.12f, metal); DrawStud(r, 0.035f, 0.88f, metal); DrawStud(r, 0.965f, 0.88f, metal); } private static void DrawRect(Rect r, Color color) { //IL_0000: Unknown result type (might be due to invalid IL or missing references) //IL_0005: Unknown result type (might be due to invalid IL or missing references) //IL_000b: Unknown result type (might be due to invalid IL or missing references) Color color2 = GUI.color; GUI.color = color; GUI.DrawTexture(r, (Texture)(object)Texture2D.whiteTexture); GUI.color = color2; } private static void DrawBorder(Rect r, float thickness, Color color) { //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_001b: Unknown result type (might be due to invalid IL or missing references) //IL_0039: Unknown result type (might be due to invalid IL or missing references) //IL_003e: Unknown result type (might be due to invalid IL or missing references) //IL_005a: Unknown result type (might be due to invalid IL or missing references) //IL_005f: Unknown result type (might be due to invalid IL or missing references) //IL_007d: Unknown result type (might be due to invalid IL or missing references) //IL_0082: Unknown result type (might be due to invalid IL or missing references) DrawRect(new Rect(((Rect)(ref r)).x, ((Rect)(ref r)).y, ((Rect)(ref r)).width, thickness), color); DrawRect(new Rect(((Rect)(ref r)).x, ((Rect)(ref r)).yMax - thickness, ((Rect)(ref r)).width, thickness), color); DrawRect(new Rect(((Rect)(ref r)).x, ((Rect)(ref r)).y, thickness, ((Rect)(ref r)).height), color); DrawRect(new Rect(((Rect)(ref r)).xMax - thickness, ((Rect)(ref r)).y, thickness, ((Rect)(ref r)).height), color); } private static GUIStyle MakeStyle(int size, TextAnchor alignment, FontStyle fontStyle, Color color) { //IL_000a: Unknown result type (might be due to invalid IL or missing references) //IL_000f: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) //IL_001d: 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_0024: Unknown result type (might be due to invalid IL or missing references) //IL_002a: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0038: Expected O, but got Unknown GUIStyle val = new GUIStyle(GUI.skin.label) { fontSize = size, alignment = alignment, fontStyle = fontStyle }; val.normal.textColor = color; val.wordWrap = true; return val; } private void OnGUI() { //IL_001a: Unknown result type (might be due to invalid IL or missing references) //IL_001f: Unknown result type (might be due to invalid IL or missing references) //IL_002b: Unknown result type (might be due to invalid IL or missing references) //IL_0030: Unknown result type (might be due to invalid IL or missing references) //IL_0040: Unknown result type (might be due to invalid IL or missing references) //IL_00b0: Unknown result type (might be due to invalid IL or missing references) //IL_00b5: Unknown result type (might be due to invalid IL or missing references) //IL_00c1: Unknown result type (might be due to invalid IL or missing references) //IL_00c6: Unknown result type (might be due to invalid IL or missing references) //IL_022b: Unknown result type (might be due to invalid IL or missing references) //IL_0237: Unknown result type (might be due to invalid IL or missing references) //IL_0246: Unknown result type (might be due to invalid IL or missing references) //IL_0255: Unknown result type (might be due to invalid IL or missing references) //IL_0295: Unknown result type (might be due to invalid IL or missing references) //IL_0297: Unknown result type (might be due to invalid IL or missing references) //IL_0299: Unknown result type (might be due to invalid IL or missing references) //IL_029b: Unknown result type (might be due to invalid IL or missing references) //IL_02ce: Unknown result type (might be due to invalid IL or missing references) //IL_0309: Unknown result type (might be due to invalid IL or missing references) //IL_030b: Unknown result type (might be due to invalid IL or missing references) //IL_033e: Unknown result type (might be due to invalid IL or missing references) //IL_034d: Unknown result type (might be due to invalid IL or missing references) //IL_0385: Unknown result type (might be due to invalid IL or missing references) //IL_0455: Unknown result type (might be due to invalid IL or missing references) //IL_0457: Unknown result type (might be due to invalid IL or missing references) //IL_046d: Unknown result type (might be due to invalid IL or missing references) //IL_0472: Unknown result type (might be due to invalid IL or missing references) //IL_049e: Unknown result type (might be due to invalid IL or missing references) //IL_04cd: Unknown result type (might be due to invalid IL or missing references) //IL_04d2: Unknown result type (might be due to invalid IL or missing references) //IL_0505: Unknown result type (might be due to invalid IL or missing references) //IL_0523: Unknown result type (might be due to invalid IL or missing references) //IL_0650: Unknown result type (might be due to invalid IL or missing references) //IL_0652: Unknown result type (might be due to invalid IL or missing references) //IL_0654: Unknown result type (might be due to invalid IL or missing references) //IL_0656: Unknown result type (might be due to invalid IL or missing references) //IL_0697: Unknown result type (might be due to invalid IL or missing references) //IL_06a7: Unknown result type (might be due to invalid IL or missing references) //IL_06ce: Unknown result type (might be due to invalid IL or missing references) //IL_06d3: Unknown result type (might be due to invalid IL or missing references) //IL_06e8: Unknown result type (might be due to invalid IL or missing references) //IL_06f2: Unknown result type (might be due to invalid IL or missing references) //IL_06f8: Unknown result type (might be due to invalid IL or missing references) //IL_0703: Unknown result type (might be due to invalid IL or missing references) //IL_0740: Unknown result type (might be due to invalid IL or missing references) //IL_0745: Unknown result type (might be due to invalid IL or missing references) //IL_075a: Unknown result type (might be due to invalid IL or missing references) //IL_0769: Unknown result type (might be due to invalid IL or missing references) //IL_0778: Unknown result type (might be due to invalid IL or missing references) //IL_077d: Unknown result type (might be due to invalid IL or missing references) //IL_077e: Unknown result type (might be due to invalid IL or missing references) //IL_079e: Unknown result type (might be due to invalid IL or missing references) //IL_05c1: Unknown result type (might be due to invalid IL or missing references) //IL_03a8: Unknown result type (might be due to invalid IL or missing references) //IL_03d8: Unknown result type (might be due to invalid IL or missing references) //IL_03dd: Unknown result type (might be due to invalid IL or missing references) //IL_03f2: Unknown result type (might be due to invalid IL or missing references) //IL_03fc: Unknown result type (might be due to invalid IL or missing references) //IL_0402: Unknown result type (might be due to invalid IL or missing references) //IL_0412: Unknown result type (might be due to invalid IL or missing references) //IL_0592: Unknown result type (might be due to invalid IL or missing references) //IL_07eb: Unknown result type (might be due to invalid IL or missing references) //IL_07f0: Unknown result type (might be due to invalid IL or missing references) //IL_07f7: Unknown result type (might be due to invalid IL or missing references) //IL_07fe: Unknown result type (might be due to invalid IL or missing references) //IL_0807: Unknown result type (might be due to invalid IL or missing references) //IL_05ad: Unknown result type (might be due to invalid IL or missing references) //IL_05a6: Unknown result type (might be due to invalid IL or missing references) //IL_0877: Unknown result type (might be due to invalid IL or missing references) //IL_0890: Unknown result type (might be due to invalid IL or missing references) //IL_0955: Unknown result type (might be due to invalid IL or missing references) //IL_096e: Unknown result type (might be due to invalid IL or missing references) //IL_099c: Unknown result type (might be due to invalid IL or missing references) //IL_099e: Unknown result type (might be due to invalid IL or missing references) //IL_09a5: Unknown result type (might be due to invalid IL or missing references) //IL_09c0: Unknown result type (might be due to invalid IL or missing references) //IL_0a0f: Unknown result type (might be due to invalid IL or missing references) //IL_0a11: Unknown result type (might be due to invalid IL or missing references) //IL_0a4e: Unknown result type (might be due to invalid IL or missing references) //IL_0a67: Unknown result type (might be due to invalid IL or missing references) //IL_0aaa: Unknown result type (might be due to invalid IL or missing references) //IL_0ac0: Unknown result type (might be due to invalid IL or missing references) //IL_0ae8: Unknown result type (might be due to invalid IL or missing references) //IL_0aed: Unknown result type (might be due to invalid IL or missing references) //IL_0b06: Unknown result type (might be due to invalid IL or missing references) //IL_0b0b: Unknown result type (might be due to invalid IL or missing references) //IL_0b20: Unknown result type (might be due to invalid IL or missing references) //IL_0b2f: Unknown result type (might be due to invalid IL or missing references) //IL_0b71: Unknown result type (might be due to invalid IL or missing references) //IL_0b8a: Unknown result type (might be due to invalid IL or missing references) //IL_0bd1: Unknown result type (might be due to invalid IL or missing references) //IL_0bd3: Unknown result type (might be due to invalid IL or missing references) //IL_0bda: Unknown result type (might be due to invalid IL or missing references) //IL_0be1: Unknown result type (might be due to invalid IL or missing references) //IL_0c0d: Unknown result type (might be due to invalid IL or missing references) //IL_0c12: Unknown result type (might be due to invalid IL or missing references) //IL_0c40: Unknown result type (might be due to invalid IL or missing references) //IL_0c78: Unknown result type (might be due to invalid IL or missing references) //IL_0c86: Unknown result type (might be due to invalid IL or missing references) //IL_0cb0: Unknown result type (might be due to invalid IL or missing references) //IL_0cb2: Unknown result type (might be due to invalid IL or missing references) //IL_0cb9: Unknown result type (might be due to invalid IL or missing references) //IL_0cc0: Unknown result type (might be due to invalid IL or missing references) //IL_0cf2: Unknown result type (might be due to invalid IL or missing references) //IL_0cf4: Unknown result type (might be due to invalid IL or missing references) //IL_0d2f: Unknown result type (might be due to invalid IL or missing references) //IL_0d34: Unknown result type (might be due to invalid IL or missing references) //IL_0d62: Unknown result type (might be due to invalid IL or missing references) //IL_0d9a: Unknown result type (might be due to invalid IL or missing references) //IL_0da9: Unknown result type (might be due to invalid IL or missing references) //IL_0dae: Unknown result type (might be due to invalid IL or missing references) //IL_0dcb: Unknown result type (might be due to invalid IL or missing references) //IL_0df5: Unknown result type (might be due to invalid IL or missing references) //IL_0df7: Unknown result type (might be due to invalid IL or missing references) //IL_0dfe: Unknown result type (might be due to invalid IL or missing references) //IL_0e05: Unknown result type (might be due to invalid IL or missing references) //IL_0e37: Unknown result type (might be due to invalid IL or missing references) //IL_0e4d: Unknown result type (might be due to invalid IL or missing references) //IL_0e89: Unknown result type (might be due to invalid IL or missing references) //IL_0ea2: Unknown result type (might be due to invalid IL or missing references) //IL_0ed3: Unknown result type (might be due to invalid IL or missing references) //IL_0f2f: Unknown result type (might be due to invalid IL or missing references) //IL_0f3d: Unknown result type (might be due to invalid IL or missing references) //IL_0f77: Unknown result type (might be due to invalid IL or missing references) //IL_0f79: Unknown result type (might be due to invalid IL or missing references) //IL_0f80: Unknown result type (might be due to invalid IL or missing references) //IL_0f87: Unknown result type (might be due to invalid IL or missing references) //IL_0fba: Unknown result type (might be due to invalid IL or missing references) //IL_0fc9: Unknown result type (might be due to invalid IL or missing references) //IL_0fce: Unknown result type (might be due to invalid IL or missing references) //IL_0feb: Unknown result type (might be due to invalid IL or missing references) //IL_1023: Unknown result type (might be due to invalid IL or missing references) //IL_1031: Unknown result type (might be due to invalid IL or missing references) //IL_10a6: Unknown result type (might be due to invalid IL or missing references) //IL_1060: Unknown result type (might be due to invalid IL or missing references) //IL_1062: Unknown result type (might be due to invalid IL or missing references) //IL_108c: Unknown result type (might be due to invalid IL or missing references) //IL_109a: Unknown result type (might be due to invalid IL or missing references) float num = Mathf.Clamp(UIScale.Value, 0.75f, 1.5f); GUI.matrix = Matrix4x4.TRS(Vector3.zero, Quaternion.identity, new Vector3(num, num, 1f)); DrawWorldClockGUI(); GUI.matrix = Matrix4x4.identity; if (!ShowUI.Value) { return; } bool flag = (Object)(object)Player.m_localPlayer != (Object)null && (_nearbyFishCount > 0 || _interestedFishCount > 0); if (!_active && string.IsNullOrEmpty(_resultText) && !flag) { return; } float num2 = Mathf.Clamp(UIScale.Value, 0.75f, 1.5f); GUI.matrix = Matrix4x4.TRS(Vector3.zero, Quaternion.identity, new Vector3(num2, num2, 1f)); float num3 = (float)Screen.width / num2; float num4 = (float)Screen.height / num2; Color woodDark = default(Color); ((Color)(ref woodDark))..ctor(0.105f, 0.055f, 0.02f, 0.985f); Color woodMid = default(Color); ((Color)(ref woodMid))..ctor(0.3f, 0.155f, 0.055f, 0.985f); Color val = default(Color); ((Color)(ref val))..ctor(0.73f, 0.43f, 0.16f, 1f); Color color = default(Color); ((Color)(ref color))..ctor(0.025f, 0.033f, 0.04f, 0.955f); Color color2 = default(Color); ((Color)(ref color2))..ctor(0.44f, 0.28f, 0.12f, 1f); Color color3 = default(Color); ((Color)(ref color3))..ctor(0.035f, 0.2f, 0.31f, 0.985f); Color val2 = default(Color); ((Color)(ref val2))..ctor(0.055f, 0.31f, 0.45f, 0.68f); Color color4 = default(Color); ((Color)(ref color4))..ctor(0.37f, 0.94f, 0.18f, 1f); Color color5 = default(Color); ((Color)(ref color5))..ctor(0.07f, 0.28f, 0.035f, 1f); Color color6 = default(Color); ((Color)(ref color6))..ctor(0.98f, 0.89f, 0.69f, 1f); Color val3 = default(Color); ((Color)(ref val3))..ctor(1f, 0.7f, 0.19f, 1f); Color body = default(Color); ((Color)(ref body))..ctor(0.68f, 0.86f, 0.98f, 1f); MakeStyle(17, (TextAnchor)4, (FontStyle)1, color6); MakeStyle(11, (TextAnchor)4, (FontStyle)0, Color.white); MakeStyle(13, (TextAnchor)4, (FontStyle)0, Color.white); GUIStyle val4 = MakeStyle(14, (TextAnchor)3, (FontStyle)1, color6); if (!string.IsNullOrEmpty(_resultText)) { Rect r = default(Rect); ((Rect)(ref r))..ctor(num3 * 0.5f - 225f, num4 * 0.7f, 450f, 116f); DrawWoodPanel(r, woodDark, woodMid, val); Rect r2 = default(Rect); ((Rect)(ref r2))..ctor(((Rect)(ref r)).x + 18f, ((Rect)(ref r)).y + 13f, 88f, 88f); DrawPeaVikingIcon(r2); Rect r3 = default(Rect); ((Rect)(ref r3))..ctor(((Rect)(ref r)).x + ((Rect)(ref r)).width - 105f, ((Rect)(ref r)).y + 21f, 78f, 70f); DrawFishIcon(r3, body); GUI.Label(new Rect(((Rect)(ref r)).x + 118f, ((Rect)(ref r)).y + 13f, ((Rect)(ref r)).width - 230f, 25f), _resultText, MakeStyle(14, (TextAnchor)4, (FontStyle)0, color6)); GUI.Label(new Rect(((Rect)(ref r)).x + 112f, ((Rect)(ref r)).y + 36f, ((Rect)(ref r)).width - 220f, 42f), string.IsNullOrEmpty(_caughtName) ? "Fish" : _caughtName, MakeStyle(25, (TextAnchor)4, (FontStyle)1, val3)); Rect val5 = new Rect(((Rect)(ref r)).x + 144f, ((Rect)(ref r)).y + 82f, 162f, 24f); DrawRect(val5, new Color(0.12f, 0.065f, 0.025f, 0.92f)); DrawBorder(val5, 1f, val); GUI.Label(val5, "PEAS KEEPERS", MakeStyle(11, (TextAnchor)4, (FontStyle)1, color6)); } if (!_active && flag) { Rect r4 = default(Rect); ((Rect)(ref r4))..ctor(num3 * 0.5f - 155f, num4 * 0.78f, 310f, 76f); DrawWoodPanel(r4, woodDark, new Color(0.43f, 0.3f, 0.15f, 0.98f), val); DrawPeaVikingIcon(new Rect(((Rect)(ref r4)).x + 10f, ((Rect)(ref r4)).y + 8f, 58f, 58f)); DrawFishIcon(new Rect(((Rect)(ref r4)).x + 74f, ((Rect)(ref r4)).y + 17f, 42f, 38f), body); GUI.Label(new Rect(((Rect)(ref r4)).x + 118f, ((Rect)(ref r4)).y + 8f, ((Rect)(ref r4)).width - 128f, 24f), "FISH NEARBY " + _nearbyFishCount, MakeStyle(14, (TextAnchor)3, (FontStyle)1, color6)); string text = ((_interestedFishCount <= 0) ? "Waiting for interest..." : ((_interestedFishCount == 1) ? "A fish is checking the bait..." : (_interestedFishCount + " fish are checking the bait..."))); GUI.Label(new Rect(((Rect)(ref r4)).x + 118f, ((Rect)(ref r4)).y + 32f, ((Rect)(ref r4)).width - 128f, 34f), text, MakeStyle(12, (TextAnchor)3, (FontStyle)0, (_interestedFishCount > 0) ? val3 : Color.white)); } if (!_active) { GUI.matrix = Matrix4x4.identity; return; } float num5 = 88f; float num6 = Mathf.Min(545f, num4 * 0.62f); float num7 = 10f; float num8 = 10f; float num9 = 19f; float num10 = num5 + num8 + num9 + num7 * 2f; float num11 = num3 * 0.715f; float num12 = (num4 - num6) * 0.5f; Rect r5 = default(Rect); ((Rect)(ref r5))..ctor(num11 - num7, num12 - num7 - 52f, num10, num6 + num7 * 2f + 52f); DrawWoodPanel(r5, woodDark, woodMid, val); Rect r6 = default(Rect); ((Rect)(ref r6))..ctor(((Rect)(ref r5)).x + ((Rect)(ref r5)).width * 0.5f - 29f, ((Rect)(ref r5)).y - 62f, 58f, 58f); DrawPeaVikingIcon(r6); float num13 = 166f; Rect val6 = new Rect(((Rect)(ref r5)).center.x - num13 * 0.5f, ((Rect)(ref r5)).y + 7f, num13, 28f); DrawRect(val6, new Color(0.12f, 0.065f, 0.025f, 0.97f)); DrawBorder(val6, 2f, val); GUIStyle val7 = MakeStyle(13, (TextAnchor)4, (FontStyle)1, color6); val7.wordWrap = false; GUI.Label(val6, "PEAS FISHING", val7); Rect r7 = new Rect(num11 - 5f, num12 - 5f, num5 + 10f, num6 + 10f); DrawRect(r7, new Color(0.1f, 0.055f, 0.022f, 1f)); DrawBorder(r7, 2f, val); Rect r8 = new Rect(num11, num12, num5, num6); DrawRect(r8, color3); DrawBorder(r8, 2f, new Color(0.36f, 0.23f, 0.1f, 1f)); for (int i = 0; i < 10; i++) { float num14 = num12 + num6 / 10f * (float)i; float num15 = 0.12f + 0.05f * (float)(i % 2); DrawRect(new Rect(num11 + 4f, num14, num5 - 8f, num6 / 10f), new Color(val2.r, val2.g, val2.b, num15)); } for (int j = 0; j < 7; j++) { float num16 = num11 + 12f + (float)j * 17f % (num5 - 24f); float num17 = num12 + 22f + (float)j * 67f % (num6 - 44f); DrawEllipse(new Rect(num16, num17, 4f + (float)(j % 3), 4f + (float)(j % 3)), new Color(0.75f, 0.93f, 1f, 0.2f)); } float num18 = num6 * BarSize.Value; _barVisualY = Mathf.Lerp(_barVisualY, _barY, 1f - Mathf.Exp(-14f * Time.deltaTime)); float num19 = Mathf.Clamp(BarSize.Value * 0.5f, 0.02f, 0.48f); float num20 = Mathf.Clamp(_barVisualY, num19, 1f - num19); float num21 = num12 + (1f - num20) * num6; DrawRect(new Rect(num11 + 9f, num21 - num18 / 2f - 3f, num5 - 18f, num18 + 6f), new Color(0.4f, 1f, 0.18f, 0.15f)); Rect r9 = default(Rect); ((Rect)(ref r9))..ctor(num11 + 13f, num21 - num18 / 2f, num5 - 26f, num18); DrawRect(r9, color5); DrawBorder(r9, 2f, new Color(0.025f, 0.12f, 0.01f, 1f)); Rect r10 = default(Rect); ((Rect)(ref r10))..ctor(((Rect)(ref r9)).x + 4f, ((Rect)(ref r9)).y + 4f, ((Rect)(ref r9)).width - 8f, Mathf.Max(1f, ((Rect)(ref r9)).height - 8f)); DrawRect(r10, color4); DrawRect(new Rect(((Rect)(ref r10)).x + 3f, ((Rect)(ref r10)).y + 3f, 4f, Mathf.Max(1f, ((Rect)(ref r10)).height - 6f)), new Color(1f, 1f, 1f, 0.34f)); float num22 = num12 + (1f - _fishY) * num6; Rect r11 = default(Rect); ((Rect)(ref r11))..ctor(num11 + 11f, num22 - 27f, num5 - 22f, 54f); DrawEllipse(r11, new Color(1f, 0.66f, 0.2f, 0.14f)); DrawFishIcon(new Rect(num11 + 13f, num22 - 24f, num5 - 26f, 48f), body); float num23 = num11 + num5 + num8; Rect r12 = new Rect(num23, num12, num9, num6); DrawRect(r12, new Color(0.035f, 0.04f, 0.045f, 0.98f)); DrawBorder(r12, 2f, val); float num24 = num6 * _progress; DrawRect(new Rect(num23 + 3f, num12 + num6 - num24 + 3f, num9 - 6f, Mathf.Max(0f, num24 - 6f)), new Color(0.63f, 0.86f, 0.98f, 1f)); float num25 = ((Rect)(ref r5)).xMax + 18f; float num26 = Mathf.Min(230f, num3 - num25 - 12f); Rect r13 = default(Rect); ((Rect)(ref r13))..ctor(num25, num12 + 20f, num26, 70f); DrawRect(r13, color); DrawBorder(r13, 2f, color2); DrawFishIcon(new Rect(((Rect)(ref r13)).x + 7f, ((Rect)(ref r13)).y + 13f, 44f, 42f), body); GUI.Label(new Rect(((Rect)(ref r13)).x + 57f, ((Rect)(ref r13)).y + 7f, num26 - 64f, 22f), "FISH", val4); GUI.Label(new Rect(((Rect)(ref r13)).x + 57f, ((Rect)(ref r13)).y + 28f, num26 - 64f, 36f), "Keep it inside your green bar.", MakeStyle(12, (TextAnchor)3, (FontStyle)0, Color.white)); Rect r14 = default(Rect); ((Rect)(ref r14))..ctor(num25, num12 + num6 * 0.43f, num26, 86f); DrawRect(r14, color); DrawBorder(r14, 2f, color2); Rect r15 = default(Rect); ((Rect)(ref r15))..ctor(((Rect)(ref r14)).x + 13f, ((Rect)(ref r14)).y + 17f, 24f, 52f); DrawRect(r15, color5); DrawRect(new Rect(((Rect)(ref r15)).x + 3f, ((Rect)(ref r15)).y + 3f, ((Rect)(ref r15)).width - 6f, ((Rect)(ref r15)).height - 6f), color4); GUI.Label(new Rect(((Rect)(ref r14)).x + 50f, ((Rect)(ref r14)).y + 7f, num26 - 58f, 22f), "YOUR BAR", val4); GUI.Label(new Rect(((Rect)(ref r14)).x + 50f, ((Rect)(ref r14)).y + 28f, num26 - 58f, 52f), "Hold " + ((object)RaiseKey.Value/*cast due to .constrained prefix*/).ToString() + " to raise.\nRelease to let it fall.", MakeStyle(12, (TextAnchor)3, (FontStyle)0, Color.white)); Rect r16 = default(Rect); ((Rect)(ref r16))..ctor(num25, num12 + num6 - 82f, num26, 74f); DrawRect(r16, color); DrawBorder(r16, 2f, color2); Rect r17 = default(Rect); ((Rect)(ref r17))..ctor(((Rect)(ref r16)).x + 15f, ((Rect)(ref r16)).y + 12f, 17f, 50f); DrawRect(r17, new Color(0.08f, 0.09f, 0.1f, 1f)); float num27 = 44f * _progress; DrawRect(new Rect(((Rect)(ref r17)).x + 3f, ((Rect)(ref r17)).y + 47f - num27, 11f, num27), new Color(0.63f, 0.86f, 0.98f, 1f)); GUI.Label(new Rect(((Rect)(ref r16)).x + 45f, ((Rect)(ref r16)).y + 7f, num26 - 53f, 22f), "CATCH " + Mathf.RoundToInt(_progress * 100f) + "%", val4); GUI.Label(new Rect(((Rect)(ref r16)).x + 45f, ((Rect)(ref r16)).y + 29f, num26 - 53f, 36f), "Fill the meter to land it.", MakeStyle(12, (TextAnchor)3, (FontStyle)0, Color.white)); Rect r18 = default(Rect); ((Rect)(ref r18))..ctor(((Rect)(ref r5)).x - 22f, ((Rect)(ref r5)).yMax + 10f, 205f, 54f); DrawRect(r18, color); DrawBorder(r18, 2f, color2); GUI.Label(new Rect(((Rect)(ref r18)).x + 8f, ((Rect)(ref r18)).y + 5f, ((Rect)(ref r18)).width - 16f, 20f), "HOLD " + ((object)RaiseKey.Value/*cast due to .constrained prefix*/).ToString() + " • RAISE", MakeStyle(12, (TextAnchor)4, (FontStyle)1, color6)); GUI.Label(new Rect(((Rect)(ref r18)).x + 8f, ((Rect)(ref r18)).y + 27f, ((Rect)(ref r18)).width - 16f, 18f), "RELEASE • DROP", MakeStyle(11, (TextAnchor)4, (FontStyle)0, Color.white)); if (_biteFlashTimer > 0f) { float a = Mathf.Clamp01(_biteFlashTimer / 0.35f); Color color7 = val3; color7.a = a; GUI.Label(new Rect(num3 * 0.5f - 120f, num4 * 0.18f, 240f, 56f), "BITE!", MakeStyle(32, (TextAnchor)4, (FontStyle)1, color7)); } GUI.matrix = Matrix4x4.identity; } } }