Files
SlimeRanger/Plugin.cs
ALittlePatate 3c09f97675 Added a lot of features (see description)
Added infinite jetpack, upgrade plot on buy, override max slot, change time multiplier
2022-07-08 17:57:14 +02:00

160 lines
8.2 KiB
C#

using BepInEx;
using UnityEngine;
using HarmonyLib;
using UnityEngine.UI;
using System.Collections.Generic;
using SlimeRanger.Helpers;
using System.Collections;
using SlimeRanger.Hooks;
namespace SlimeRanger
{
[BepInPlugin(PluginInfo.PLUGIN_GUID, PluginInfo.PLUGIN_NAME, PluginInfo.PLUGIN_VERSION)]
[BepInProcess("SlimeRancher.exe")]
public class Plugin : BaseUnityPlugin
{
private void Awake()
{
// Plugin startup logic
Logger.LogInfo("SlimeRanger loaded !");
var harmony = new Harmony("com.example.patch");
harmony.PatchAll();
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.Insert))
{
Settings.Settings.menu_enable = !Settings.Settings.menu_enable;
}
if (Settings.Settings.fly)
{
Settings.Settings.need_to_restore_gravity = true;
Physics.set_gravity_Injected(ref Settings.Settings.zero_gravity);
Hacks.Misc.Fly(Settings.Settings.fly_speed);
}
if (!Settings.Settings.fly && Settings.Settings.need_to_restore_gravity)
{
Settings.Settings.need_to_restore_gravity = false;
Physics.set_gravity_Injected(ref Settings.Settings.original_gravity);
}
Time.timeScale = (float)Settings.Settings.time_multiplier;
}
private void OnGUI()
{
if (Settings.Settings.menu_enable) //Si on appuie sur INSERT
{
GUIStyle StatesLabel;
StatesLabel = new GUIStyle(GUI.skin.label)
{
alignment = TextAnchor.MiddleLeft,
margin = new RectOffset(),
padding = new RectOffset(),
fontSize = 25,
fontStyle = FontStyle.Bold
};
GUIStyle Statestoggle;
Statestoggle = new GUIStyle(GUI.skin.toggle)
{
fontSize = 20,
fontStyle = FontStyle.Bold
};
GUIStyle Statestoggle_smol;
Statestoggle_smol = new GUIStyle(GUI.skin.toggle)
{
fontSize = 10,
fontStyle = FontStyle.Bold
};
GUI.contentColor = Color.cyan;
GUI.Label(new Rect(200, Settings.Settings.y, 200, 50), "SlimeRanger", StatesLabel); //Titre du menu
Settings.Settings.map_reveal = GUI.Toggle(new Rect(200, Settings.Settings.y + 50, 130, 25), Settings.Settings.map_reveal, "Reveal map", Statestoggle);
Settings.Settings.godmode = GUI.Toggle(new Rect(200, Settings.Settings.y + 80, 130, 25), Settings.Settings.godmode, "Godmode", Statestoggle);
if (GUI.Button(new Rect(200, Settings.Settings.y + 110, 110, 20), "Add key"))
{
Hacks.Misc.AddKey();
Logger.LogInfo("Key added");
}
if (GUI.Button(new Rect(200, Settings.Settings.y + 140, 110, 20), "Upgrade All"))
{
Hacks.Unlocks.UnlockAllUpgrades();
Logger.LogInfo("All upgrades unlocked !");
}
if (GUI.Button(new Rect(200, Settings.Settings.y + 170, 110, 20), "Set energy"))
{
Hacks.Misc.SetEnergy((int)Settings.Settings.energy_to_set);
Logger.LogInfo("Energy added !");
}
GUI.Label(new Rect(200, Settings.Settings.y + 190, 200, 30), "Energy Amount : ");
Settings.Settings.energy_to_set = GUI.HorizontalSlider(new Rect(200, Settings.Settings.y + 210, 100, 10), Settings.Settings.energy_to_set, 0f, 1000f);
GUI.Label(new Rect(305, Settings.Settings.y + 205, 100, 30), ((int)Settings.Settings.energy_to_set).ToString());
if (GUI.Button(new Rect(200, Settings.Settings.y + 230, 110, 20), "Set Health"))
{
Hacks.Misc.SetHealth((int)Settings.Settings.health_to_set);
Logger.LogInfo("Health added !");
}
GUI.Label(new Rect(200, Settings.Settings.y + 250, 200, 30), "Health Amount : ");
Settings.Settings.health_to_set = GUI.HorizontalSlider(new Rect(200, Settings.Settings.y + 270, 100, 10), Settings.Settings.health_to_set, 0f, 1000f);
GUI.Label(new Rect(305, Settings.Settings.y + 265, 100, 30), ((int)Settings.Settings.health_to_set).ToString());
if (GUI.Button(new Rect(200, Settings.Settings.y + 290, 110, 20), "Add money"))
{
Hacks.Misc.AddCurrency((int)Settings.Settings.money_to_add);
Logger.LogInfo("Money added !");
}
GUI.Label(new Rect(200, Settings.Settings.y + 310, 200, 30), "Amount : ");
Settings.Settings.money_to_add = GUI.HorizontalSlider(new Rect(200, Settings.Settings.y + 330, 100, 10), Settings.Settings.money_to_add, 0f, 1000f);
GUI.Label(new Rect(305, Settings.Settings.y + 325, 100, 30), ((int)Settings.Settings.money_to_add).ToString());
Settings.Settings.no_rad = GUI.Toggle(new Rect(350, Settings.Settings.y + 50, 130, 25), Settings.Settings.no_rad, "No rad", Statestoggle);
Settings.Settings.infinite_energy = GUI.Toggle(new Rect(350, Settings.Settings.y + 80, 130, 25), Settings.Settings.infinite_energy, "∞ energy", Statestoggle);
Settings.Settings.fly = GUI.Toggle(new Rect(350, Settings.Settings.y + 110, 130, 25), Settings.Settings.fly, "Fly", Statestoggle);
GUI.Label(new Rect(350, Settings.Settings.y + 130, 200, 30), "Speed : ");
Settings.Settings.fly_speed = GUI.HorizontalSlider(new Rect(350, Settings.Settings.y + 150, 100, 10), Settings.Settings.fly_speed, 0f, 100f);
GUI.Label(new Rect(455, Settings.Settings.y + 145, 100, 30), ((int)Settings.Settings.fly_speed).ToString());
if (GUI.Button(new Rect(350, Settings.Settings.y + 175, 110, 20), "Save position"))
{
Settings.Settings.savedposition = StateHelpers.GetPlayerPosition();
Logger.LogInfo("Saved position : " + Settings.Settings.savedposition.ToString());
}
if (GUI.Button(new Rect(350, Settings.Settings.y + 205, 110, 20), "Goto position"))
{
if (Settings.Settings.savedposition != null)
{
Hacks.Misc.SetPlayerPosition(Settings.Settings.savedposition);
Logger.LogInfo("Teleported to position : " + Settings.Settings.savedposition.ToString());
}
}
Settings.Settings.infinite_jetpack = GUI.Toggle(new Rect(350, Settings.Settings.y + 235, 130, 25), Settings.Settings.infinite_jetpack, "∞ jetpack", Statestoggle);
Settings.Settings.max_plot = GUI.Toggle(new Rect(350, Settings.Settings.y + 265, 130, 25), Settings.Settings.max_plot, "Upgrade plot on buy", Statestoggle_smol);
Settings.Settings.max_slot_override = GUI.Toggle(new Rect(350, Settings.Settings.y + 290, 130, 25), Settings.Settings.max_slot_override, "Override max slot", Statestoggle_smol);
GUI.Label(new Rect(350, Settings.Settings.y + 310, 200, 30), "Max : ");
Settings.Settings.max_slot = GUI.HorizontalSlider(new Rect(350, Settings.Settings.y + 330, 100, 10), Settings.Settings.max_slot, 0f, 1000f);
GUI.Label(new Rect(455, Settings.Settings.y + 325, 100, 30), ((int)Settings.Settings.max_slot).ToString());
GUI.Label(new Rect(500, Settings.Settings.y + 50, 200, 30), "Time multiplier :");
Settings.Settings.time_multiplier = GUI.HorizontalSlider(new Rect(500, Settings.Settings.y + 70, 100, 10), Settings.Settings.time_multiplier, 1f, 100f);
GUI.Label(new Rect(605, Settings.Settings.y + 65, 100, 30), ((int)Settings.Settings.time_multiplier).ToString());
}
}
}
}