public static bool Prefix(Seaglide __instance) { var usingSeaglide = Player.main.motorMode == Player.MotorMode.Seaglide; var speed = Mathf.FloorToInt(Player.main.rigidBody.velocity.magnitude); int boostSpeed = 1800; if (usingSeaglide) { if (__instance.powerGlideActive) { if (__instance.HasEnergy()) { __instance.powerGlideForce = boostSpeed; // the for that is applied __instance.energyMixin.ConsumeEnergy(0.0001f); // For energy Consumption __instance._smoothedMoveSpeed = speed; //* 4000; The moving effects __instance.engineRPMManager.engineRpmSFX.evt.setPitch(1.3f); //sets the sound pitch __instance.engineRPMManager.engineRpmSFX.evt.setVolume(2.0f); //Change the volume __instance.animator.speed = speed; // Prop Animation speed //MainPatch.pGlide = true; } } else { __instance.engineRPMManager.engineRpmSFX.evt.setPitch(1); __instance._smoothedMoveSpeed = 0; __instance.powerGlideActive = false; __instance.animator.speed = 1; __instance.engineRPMManager.engineRpmSFX.evt.setVolume(1); MainPatch.pGlide = false; } } return(true); }
public static bool Prefix(Seaglide __instance) { var usingSeaglide = Player.main.motorMode == Player.MotorMode.Seaglide; float num = 0f; if (usingSeaglide) { if (__instance.powerGlideActive) { if (__instance.HasEnergy()) { __instance.powerGlideForce = MainPatch.boostSpeed; num = Mathf.Clamp(__instance.GetComponent <Rigidbody>().velocity.magnitude / 5f, 0f, 1f); Player.main.gameObject.GetComponent <Rigidbody>().AddForce(__instance.gameObject.transform.forward * __instance.powerGlideForce, ForceMode.Force); MainPatch.pGlide = true; } } else { __instance.powerGlideActive = false; MainPatch.pGlide = false; } } return(true); }
public static void GetCustomUseText(ref string __result, Seaglide __instance) { if (__instance == null || __instance.gameObject == null || __instance.gameObject.GetComponent <PowerglideBehaviour>() == null) { return; } string sprintText = LanguageCache.GetButtonFormat(Language.main.Get("HoverbikeBoostDisplay") + "({0})", GameInput.Button.Sprint);; if (string.IsNullOrEmpty(customUseText) || cachedUseText != sprintText) { if (Language.main != null) { customUseText = __result + ", " + sprintText; cachedUseText = sprintText; typeof(Seaglide).GetField("customUseCachedString", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(__instance, customUseText); } else { //Log.LogDebug("Language.main is not available"); } } //__result = customUseText; //__instance.customUseCachedString = customUseText; }
public static void Update(Seaglide __instance) { var info = __instance.GetOrCreateInfo(); if (info.overchargeTime > 0) { info.overchargeTime = Mathf.Max(0, info.overchargeTime - Time.deltaTime); if (info.overchargeTime <= 0) { ResetMotorMode(); } } if ((bool)activeState.GetValue(__instance)) { if (!AnnouncementShown) { AnnouncementShown = true; ErrorMessage.AddError($"Press {C.OverchargeKey.ToUpper()} to activate Overcharge."); } if (Input.GetKeyDown(C.OverchargeKey.ToLower())) { TryActivatingOvercharge(info); } } }
private static bool Prefix(Seaglide __instance) { __instance.toggleLights.maxLightStates = 1; __instance.toggleLights.lightState = Mod.config.SeaglideMapStartOn ? 0 : 2; return(true); }
public static bool Prefix(Seaglide __instance) { var seaGlide = __instance.toggleLights.lightsParent.GetComponentsInChildren <Light>(); if (MainPatch.othermods) { if (seaGlide != null) { foreach (var allLights in seaGlide) { if (allLights.gameObject.name.Contains("light_")) { /*Debug.Log($"" + * $"Color is {allLights.color}\n" + * $"intensity is {allLights.intensity}\n" + * $"range is {allLights.range}\n" + * $"spotangle is {allLights.spotAngle}\n");*/ allLights.spotAngle = Menus.ConfigWhiteLights.spotAngle; allLights.intensity = Menus.ConfigWhiteLights.Intensity; allLights.range = Menus.ConfigWhiteLights.Range; } break; } } } else { if (Menus.Config.ToggleColor) { if (seaGlide != null) { foreach (var allLights in seaGlide) { if (allLights.gameObject.name.Contains("light_")) { /*Debug.Log($"" + * $"Color is {allLights.color}\n" + * $"intensity is {allLights.intensity}\n" + * $"range is {allLights.range}\n" + * $"spotangle is {allLights.spotAngle}\n");*/ allLights.spotAngle = Menus.Config.spotAngle; allLights.color = Menus.Config.FlashLightColor.ToColor(true); allLights.intensity = Menus.Config.Intensity; allLights.range = Menus.Config.Range; } else { allLights.color = Menus.Config.FlashLightColor.ToColor(false); } break; } } } } return(true); }
public static SeaglideOverchargeInfo GetOrCreateInfo(this Seaglide seaglide) { if (!info.TryGetValue(seaglide, out var result)) { result = info[seaglide] = new SeaglideOverchargeInfo(seaglide); } return(result); }
public static void Postfix(ref Seaglide __instance) { var batt = __instance.energyMixin.battery; if (batt != null) { batt.charge = charge; } }
public static bool Prefix(Seaglide __instance) { var usingSeaglide = Player.main.motorMode == Player.MotorMode.Seaglide; float speed = Mathf.FloorToInt(Player.main.rigidBody.velocity.magnitude); MainPatch.boostSpeed = speed + 2000; if (__instance.GetComponent <EnergyMixin>().charge >= 10) { if (Input.GetKey(MainPatch.BoostKey)) { if (usingSeaglide) { if (speed > 5) { __instance.powerGlideActive = true; MainPatch.pGlide = true; __instance.powerGlideForce = MainPatch.boostSpeed;// MainPatch.boostSpeed; __instance.GetComponent <EnergyMixin>().ConsumeEnergy(0.000005f); __instance.animator.speed = speed; __instance.engineRPMManager.engineRpmSFX.GetEventInstance().setPitch(1.1f); __instance.engineRPMManager.engineRpmSFX.GetEventInstance().setVolume(1.1f); __instance._smoothedMoveSpeed = MainPatch.boostSpeed; MainPatch.pGlide = true; } else { __instance.powerGlideActive = false; __instance.animator.speed = 1; __instance.engineRPMManager.engineRpmSFX.GetEventInstance().setPitch(1.0f); __instance.engineRPMManager.engineRpmSFX.GetEventInstance().setVolume(1.0f); __instance._smoothedMoveSpeed = 0f; MainPatch.pGlide = false; } } } else { __instance.powerGlideActive = false; __instance.animator.speed = 1; __instance.engineRPMManager.engineRpmSFX.GetEventInstance().setPitch(1.0f); __instance.engineRPMManager.engineRpmSFX.GetEventInstance().setVolume(1.0f); __instance._smoothedMoveSpeed = 0; MainPatch.pGlide = false; } } else { __instance.powerGlideActive = false; __instance.animator.speed = 1; __instance.engineRPMManager.engineRpmSFX.GetEventInstance().setPitch(1.0f); __instance.engineRPMManager.engineRpmSFX.GetEventInstance().setVolume(1.0f); __instance._smoothedMoveSpeed = 0; MainPatch.pGlide = false; } return(true); }
public void PostUpdate(Seaglide instance) { if (tool == null) { if (instance != null) { tool = instance; } else { return; } } /* * public bool bBoostActive { get; private set; } * public bool bhasEnergy { get; private set; } * public bool bInputHeld { get; private set; } */ bIsUnderwater = Player.main.IsUnderwaterForSwimming(); bhasEnergy = tool.HasEnergy(); bInputHeld = GameInput.GetButtonHeld(GameInput.Button.Sprint); bool powerGlideActive = bIsUnderwater && bhasEnergy && bInputHeld; tool.powerGlideParam = Mathf.Lerp(tool.powerGlideParam, powerGlideActive ? 1f : 0f, Time.deltaTime * 3f); powerSeaglideForce = Mathf.Lerp(powerSeaglideForce, powerGlideActive ? powerGlideForce : 0f, Time.deltaTime * powerLerpRate); tool.powerGlideForce = powerSeaglideForce; #if SUBNAUTICA_STABLE if (powerGlideActive) { Player.main.gameObject.GetComponent <Rigidbody>().AddForce(this.gameObject.transform.forward * powerSeaglideForce, ForceMode.Force); } #elif BELOWZERO tool.powerGlideActive = powerGlideActive; #endif MeshRenderer[] meshRenderers = tool.GetAllComponentsInChildren <MeshRenderer>(); SkinnedMeshRenderer[] skinnedMeshRenderers = tool.GetAllComponentsInChildren <SkinnedMeshRenderer>(); foreach (MeshRenderer mr in meshRenderers) { // MeshRenderers have the third-person mesh, apparently? if (mr.name.Contains("SeaGlide_01_TP")) { mr.material.color = PowerglideBehaviour.PowerGlideColour; } } foreach (SkinnedMeshRenderer smr in skinnedMeshRenderers) { if (smr.name.Contains("SeaGlide_geo")) { smr.material.color = PowerglideBehaviour.PowerGlideColour; } } }
private static bool Prefix(Seaglide __instance) { var lights = __instance.toggleLights.lightsParent.GetComponentsInChildren <Light>(); foreach (var light in lights) { light.color = Mod.config.Seaglide.ToColor(); } return(true); }
public static void PostUpdate(Seaglide __instance) { //PowerglideBehaviour behaviour = __instance.gameObject.GetComponent<PowerglideBehaviour>(); //if(behaviour != null) if (__instance.gameObject.TryGetComponent <PowerglideBehaviour>(out PowerglideBehaviour behaviour)) { behaviour.PostUpdate(__instance); } }
public static bool Prefix(Seaglide __instance) { var usingSeaglide = Player.main.motorMode == Player.MotorMode.Seaglide; //ErrorMessage.AddWarning($" {Mathf.FloorToInt(Player.main.rigidBody.velocity.magnitude)}"); var batteryMeter = __instance.gameObject.GetAllComponentsInChildren <VehicleInterface_EnergyBar>(); float speed = Mathf.FloorToInt(Player.main.rigidBody.velocity.magnitude); if (!usingSeaglide) { foreach (var bat in batteryMeter) { bat.energyBar.SetActive(true); bat.gameObject.SetActive(true); __instance.engineRPMManager.engineRpmSFX.evt.setPitch(1); __instance._smoothedMoveSpeed = 0; __instance.powerGlideActive = false; __instance.animator.speed = 1; __instance.engineRPMManager.engineRpmSFX.evt.setVolume(1); MainPatch.pGlide = false; } } else if (usingSeaglide) { if (Input.GetKey(KeyCode.Mouse0)) { if (speed > 5) { __instance.powerGlideActive = true; MainPatch.pGlide = true; } foreach (var bat in batteryMeter) { if (__instance.HasEnergy()) { bat.energyBar.SetActive(true); bat.gameObject.SetActive(true); } else { bat.energyBar.SetActive(false); bat.gameObject.SetActive(false); __instance.powerGlideActive = false; MainPatch.pGlide = false; } } } else { __instance.powerGlideActive = false; MainPatch.pGlide = false; } } return(true); }
public static bool Prefix(ref Seaglide __instance, bool __result) { if (CraftData.GetTechType(__instance.gameObject) == TechType.PowerGlide && __instance.energyMixin.charge > 0f && (__instance.energyMixin.charge >= 1f || !DeathRun.saveData.playerSave.seaGlideExpended)) { __instance.powerGlideActive = true; } __result = false; return(false); }
public static bool Prefix(ref Seaglide __instance) { charge = __instance.energyMixin.charge; if ((__instance.energyMixin.charge < 1f) && DeathRun.saveData.playerSave.seaGlideExpended) { var batt = __instance.energyMixin.battery; if (batt != null) { batt.charge = 0; } } else { DeathRun.saveData.playerSave.seaGlideExpended = false; } return(true); }
public void PostUpdate(Seaglide instance) { if (tool == null) { if (instance != null) { tool = instance; } else { return; } } tool.powerGlideActive = Player.main.IsUnderwaterForSwimming() && tool.HasEnergy() && GameInput.GetButtonHeld(GameInput.Button.Sprint); tool.powerGlideParam = Mathf.Lerp(tool.powerGlideParam, tool.powerGlideActive ? 1f : 0f, Time.deltaTime * 3f); powerSeaglideForce = Mathf.Lerp(powerSeaglideForce, tool.powerGlideActive ? powerGlideForce : 0f, Time.deltaTime * powerLerpRate); tool.powerGlideForce = powerSeaglideForce; MeshRenderer[] meshRenderers = tool.GetAllComponentsInChildren <MeshRenderer>(); SkinnedMeshRenderer[] skinnedMeshRenderers = tool.GetAllComponentsInChildren <SkinnedMeshRenderer>(); Color powerGlideColour = new Color(PowerglideEquipable.PowerglideColourR, PowerglideEquipable.PowerglideColourG, PowerglideEquipable.PowerglideColourB); foreach (MeshRenderer mr in meshRenderers) { // MeshRenderers have the third-person mesh, apparently? if (mr.name.Contains("SeaGlide_01_TP")) { mr.material.color = powerGlideColour; } } foreach (SkinnedMeshRenderer smr in skinnedMeshRenderers) { if (smr.name.Contains("SeaGlide_geo")) { smr.material.color = powerGlideColour; } } }
public static bool Prefix(Seaglide __instance) { var sgColor = __instance.GetAllComponentsInChildren <SkinnedMeshRenderer>(); var pickupablesgColor = __instance.GetAllComponentsInChildren <MeshRenderer>(); foreach (var seaglideColor in sgColor) { if (seaglideColor.name.Contains("SeaGlide_geo")) { seaglideColor.material.color = new Color32(Convert.ToByte(Config.seagliderValue), Convert.ToByte(Config.seaglidegValue), Convert.ToByte(Config.seaglidebValue), 1); } } foreach (var droppedseaglideColor in pickupablesgColor) { if (droppedseaglideColor.name.Contains("SeaGlide_01_TP")) { droppedseaglideColor.material.color = new Color32(Convert.ToByte(Config.seagliderValue), Convert.ToByte(Config.seaglidegValue), Convert.ToByte(Config.seaglidebValue), 100); } } return(true); }
public static bool Prefix(Seaglide __instance) { var sgColor = __instance.GetAllComponentsInChildren <SkinnedMeshRenderer>(); var pickupablesgColor = __instance.GetAllComponentsInChildren <MeshRenderer>(); //var radar = __instance.GetAllComponentsInChildren<VehicleInterface_MapController>(); foreach (var seaglideColor in sgColor) { if (seaglideColor.name.Contains("SeaGlide_geo")) { if (MainPatch.othermods == false) { seaglideColor.material.color = new Color32(Convert.ToByte(Menus.Config.seagliderValue), Convert.ToByte(Menus.Config.seaglidegValue), Convert.ToByte(Menus.Config.seaglidebValue), 1); } else { seaglideColor.material.color = new Color32(Convert.ToByte(Menus.ConfigWhiteLights.seagliderValue), Convert.ToByte(Menus.ConfigWhiteLights.seaglidegValue), Convert.ToByte(Menus.ConfigWhiteLights.seaglidebValue), 1); } } } foreach (var droppedseaglideColor in pickupablesgColor) { if (droppedseaglideColor.name.Contains("SeaGlide_01_TP")) { if (MainPatch.othermods == false) { droppedseaglideColor.material.color = new Color32(Convert.ToByte(Menus.Config.seagliderValue), Convert.ToByte(Menus.Config.seaglidegValue), Convert.ToByte(Menus.Config.seaglidebValue), 100); } else { droppedseaglideColor.material.color = new Color32(Convert.ToByte(Menus.ConfigWhiteLights.seagliderValue), Convert.ToByte(Menus.ConfigWhiteLights.seaglidegValue), Convert.ToByte(Menus.ConfigWhiteLights.seaglidebValue), 100); } } } return(true); }
public static void RaisePropSpeed(this Seaglide seaglide, float amount) => seaglide.propSpeed += amount;
internal static void Postfix(Seaglide __instance) { __instance.gameObject.AddIfNeedComponent <SeaglideOverDrive>(); }
public static void ReduceMaxSpinSpeed(this Seaglide seaglide, float amount) => seaglide.maxSpinSpeed -= amount;
public static float GetPropSpeed(this Seaglide seaglide) => seaglide.propSpeed;
internal static void Postfix(Seaglide __instance) { __instance.gameObject.AddIfNeedComponent <SeaglideOverDrive>(); SNLogger.Log($"[CheatManager] Added component [SeaGlideOverDrive] to instance [{__instance.gameObject.GetFullName()}]"); }
public static void Start(Seaglide __instance) { var c = C; __instance.toggleLights.energyPerSecond = c.lightEnergy; }
public static void ReducePropSpeed(this Seaglide seaglide, float amount) => seaglide.propSpeed -= amount;
public SeaglideOverchargeInfo(Seaglide seaglide) { this.seaglide = seaglide; }
public static float GetSpinUpSpeed(this Seaglide seaglide) => seaglide.spinUpSpeed;
public void Awake() { tool = gameObject.GetComponent <Seaglide>(); power = gameObject.GetComponent <EnergyMixin>(); DevConsole.RegisterConsoleCommand(this, "powerglideforce", false, false); }
public static bool Prefix(Seaglide __instance) { var seaGlide = __instance.toggleLights.GetComponentsInChildren <Light>(); var sgColor = __instance.GetAllComponentsInChildren <SkinnedMeshRenderer>(); var pickupablesgColor = __instance.GetAllComponentsInChildren <MeshRenderer>(); if (__instance.toggleLights.lightsParent != null) { if (seaGlide != null) { foreach (var allLights in seaGlide) { if (allLights.gameObject.name.Contains("Light")) { /*Debug.Log($"" + * $"Color is {allLights.color}\n" + * $"intensity is {allLights.intensity}\n" + * $"range is {allLights.range}\n" + * $"spotangle is {allLights.spotAngle}\n");*/ if (MainPatch.ToggleColor) { allLights.color = MainPatch.FlashLightColor.LightToColor(true); } else { allLights.color = MainPatch.FlashLightColor.LightToColor(false); } if (MainPatch.SeaglideLightOptions) { allLights.spotAngle = MainPatch.spotAngle; allLights.intensity = MainPatch.Intensity; allLights.range = MainPatch.Range; } else { //Logger.Log(Logger.Level.Error, $"[LightColor] Consize:{allLights.spotAngle}"); //Logger.Log(Logger.Level.Error, $"[LightColor] Brighness:{allLights.intensity}"); //Logger.Log(Logger.Level.Error, $"[LightColor] Range:{allLights.range}"); allLights.spotAngle = 70; allLights.intensity = 0.9f; allLights.range = 40; } } break; } } } foreach (var seaglideColor in sgColor) { if (seaglideColor.name.Contains("SeaGlide_geo")) { if (MainPatch.SeaglideColor) { seaglideColor.material.color = MainPatch.SeaglideModelColor.ColorToColor(true); } else { seaglideColor.material.color = MainPatch.SeaglideModelColor.ColorToColor(false); } // Logger.Log(Logger.Level.Info, $"[LightColor] Color:{seaglideColor.material.color} "); // seaglideColor.material.color = new Color(SeaglideConfig.seagliderValue, SeaglideConfig.seaglidegValue, SeaglideConfig.seaglidebValue, 1); } } foreach (var droppedseaglideColor in pickupablesgColor) { if (droppedseaglideColor.name.Contains("SeaGlide_01_TP")) { if (MainPatch.SeaglideColor) { droppedseaglideColor.material.color = MainPatch.SeaglideModelColor.ColorToColor(true); } else { droppedseaglideColor.material.color = MainPatch.SeaglideModelColor.ColorToColor(false); } //Logger.Log(Logger.Level.Info, $"[LightColor] DroppedColor:{droppedseaglideColor.material.color} "); //droppedseaglideColor.material.color = new Color(SeaglideConfig.seagliderValue, SeaglideConfig.seaglidegValue, SeaglideConfig.seaglidebValue, 1); } } return(true); }
static bool Prefix(Seaglide __instance) { __instance.engineRPMManager.AccelerateInput(2f); return(true); }