Eclipsed Price Raise

v1.0.0·Updated 2024-10-11

Increases price of scrap on eclipsed planets.

About this mod Author’s original text

This is the template, I was too lazy to change it.

Lethal Company Mod Template

Thank you for using the mod template! Here are a few tips to help you on your journey:

Versioning

BepInEx uses semantic versioning, or semver, for the mod's version info.

To increment it, you can either modify the version tag in the.csproj file directly, or use your IDE's UX to increment the version. Below is an example of modifying the.csproj file directly:

EclipsedPriseRaise

EclipsedPriseRaise

1.0.0

Your IDE will have the setting in Package or NuGet under General or Metadata, respectively.

Logging

A logger is provided to help with logging to the console.

You can access it by doing Plugin.Logger in any class outside the Plugin class.

Please use LogDebug() *whenever possible, as any other log method

will be displayed to the console and potentially cause performance issues for users.*

If you chose to do so, make sure you change the following line in the BepInEx.cfg file to see the Debug messages:

[Logging.Console]... #

Which log levels to show in the console output.

Setting type: LogLevel

Default value: Fatal, Error, Warning, Message, Info

Acceptable values: None, Fatal, Error, Warning, Message, Info, Debug, All

Multiple values can be set at the same time by separating them with, (e.g. Debug, Warning)

LogLevels = All

Harmony

This template uses harmony. For more specifics on how to use it, look at

the HarmonyX GitHub wiki and

the Harmony docs.

To make a new harmony patch, just use [HarmonyPatch] before any class you make that has a patch in it.

Then in that class, you can use

[HarmonyPatch(typeof(ClassToPatch), "MethodToPatch")]

where ClassToPatch is the class you're patching (ie TVScript), and MethodToPatch is the method you're patching (ie SwitchTVLocalClient).

Then you can use

the appropriate prefix, postfix, transpiler, or finalizer attribute.

_While you can use_ return false; _in a prefix patch,

it is HIGHLY DISCOURAGED as it can AND WILL cause compatibility issues with other mods._

For example, we want to add a patch that will debug log the current players' position.

We have the following postfix patch patching the SwitchTVLocalClient method

in TVScript:

using HarmonyLib;

namespace EclipsedPriseRaise.Patches;

[HarmonyPatch(typeof(TVScript))]

public class ExampleTVPatch

{

[HarmonyPatch("SwitchTVLocalClient")]

[HarmonyPrefix]

private static void SwitchTvPrefix(TVScript __instance)

{

/*

  • When the method is called, the TV will be turning off when we want to
  • turn the lights on and vice-versa. At that time, the TV's tvOn field
  • will be the opposite of what it's doing, ie it'll be on when turning off.
  • So, we want to set the lights to what the tv's state was
  • when this method is called.

*/

StartOfRound.Instance.shipRoomLights.SetShipLightsBoolean(__instance.tvOn);

}

}

In this case we include the type of the class we're patching in the attribute

before our ExampleTVPatch class,

as our class will only patch the TVScript class.

Install & use Install: BepInEx plugin

  1. The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
  2. Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
  3. Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
  4. Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.

Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file.

File & checksum

Filename
Eclipsed_Price_Raise-1.0.0.zip
File size
22.8 KiB