Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0e0005d5a9 | ||
|
|
14ae3e1c43 | ||
|
|
c0858f7eae | ||
|
|
3c245213c7 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,4 +1,5 @@
|
|||||||
#Visual studio stuff
|
#Visual studio stuff
|
||||||
.vs
|
.vs
|
||||||
|
.git
|
||||||
DevourClient/bin
|
DevourClient/bin
|
||||||
DevourClient/obj
|
DevourClient/obj
|
||||||
@@ -129,23 +129,23 @@ namespace DevourClient.Hacks
|
|||||||
Survival survival_class = UnityEngine.Object.FindObjectOfType<Survival>();
|
Survival survival_class = UnityEngine.Object.FindObjectOfType<Survival>();
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
survival_class.PlayWinEnding("InnWin");
|
survival_class.PlayEnding("InnWin");
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
survival_class.PlayWinEnding("AsylumWin");
|
survival_class.PlayEnding("AsylumWin");
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
survival_class.PlayWinEnding("TownWin");
|
survival_class.PlayEnding("TownWin");
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
survival_class.PlayWinEnding("Win");
|
survival_class.PlayEnding("Win");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,23 +4,7 @@ namespace DevourClient.Hooks
|
|||||||
{
|
{
|
||||||
public class Hooks
|
public class Hooks
|
||||||
{
|
{
|
||||||
/*
|
/* Commented out for UC release
|
||||||
[HarmonyPatch(typeof(UIPerkSelectionType))]
|
|
||||||
[HarmonyPatch(nameof(UIPerkSelectionType.SetLocked))] //annotation boiler plate to tell Harmony what to patch. Refer to docs.
|
|
||||||
static class UIPerkSelectionType_SetLocked_Patch
|
|
||||||
{
|
|
||||||
static void Prefix(ref bool locked, ref int cost)
|
|
||||||
{
|
|
||||||
MelonLoader.MelonLogger.Msg("cost : "+cost);
|
|
||||||
MelonLoader.MelonLogger.Msg("locked : " + locked);
|
|
||||||
|
|
||||||
locked = false;
|
|
||||||
cost = 0;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
[HarmonyPatch(typeof(NolanBehaviour))]
|
[HarmonyPatch(typeof(NolanBehaviour))]
|
||||||
[HarmonyPatch(nameof(NolanBehaviour.SetIsBeingKnockedOut))] //annotation boiler plate to tell Harmony what to patch. Refer to docs.
|
[HarmonyPatch(nameof(NolanBehaviour.SetIsBeingKnockedOut))] //annotation boiler plate to tell Harmony what to patch. Refer to docs.
|
||||||
static class NolanBehaviour_SetIsBeingKnockedOut_Patch
|
static class NolanBehaviour_SetIsBeingKnockedOut_Patch
|
||||||
@@ -32,5 +16,91 @@ namespace DevourClient.Hooks
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
[HarmonyPatch(typeof(Horror.Menu))]
|
||||||
|
[HarmonyPatch(nameof(Horror.Menu.SetupPerk))] //annotation boiler plate to tell Harmony what to patch. Refer to docs.
|
||||||
|
static class Horror_Menu_SetupPerk_Patch
|
||||||
|
{
|
||||||
|
static void Prefix(ref CharacterPerk perk)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
public int cost { get; set; }
|
||||||
|
public bool isOwned { get; set; }
|
||||||
|
public bool isHidden { get; set; }
|
||||||
|
*/
|
||||||
|
|
||||||
|
//MelonLoader.MelonLogger.Msg("cost : " + perk.cost);
|
||||||
|
//MelonLoader.MelonLogger.Msg("isOwned : " + perk.isOwned);
|
||||||
|
//MelonLoader.MelonLogger.Msg("isHidden : " + perk.isHidden);
|
||||||
|
perk.cost = 0;
|
||||||
|
perk.isOwned = true;
|
||||||
|
perk.isHidden = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HarmonyPatch(typeof(Horror.Menu))]
|
||||||
|
[HarmonyPatch(nameof(Horror.Menu.SetupOutfit))] //annotation boiler plate to tell Harmony what to patch. Refer to docs.
|
||||||
|
static class Horror_Menu_SetupOutfit_Patch
|
||||||
|
{
|
||||||
|
static void Prefix(ref CharacterOutfit outfit)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
public ulong currentPrice;
|
||||||
|
public ulong basePrice;
|
||||||
|
public bool isOwned;
|
||||||
|
public bool isHidden;
|
||||||
|
*/
|
||||||
|
|
||||||
|
//MelonLoader.MelonLogger.Msg("basePrice : " + outfit.basePrice);
|
||||||
|
//MelonLoader.MelonLogger.Msg("currentPrice : " + outfit.currentPrice);
|
||||||
|
//MelonLoader.MelonLogger.Msg("isOwned : " + outfit.isOwned);
|
||||||
|
//MelonLoader.MelonLogger.Msg("isHidden : " + outfit.isHidden);
|
||||||
|
outfit.basePrice = 0;
|
||||||
|
outfit.currentPrice = 0;
|
||||||
|
outfit.isOwned = true;
|
||||||
|
outfit.isHidden = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HarmonyPatch(typeof(OptionsHelpers))]
|
||||||
|
[HarmonyPatch(nameof(OptionsHelpers.IsRobeUnlocked))] //annotation boiler plate to tell Harmony what to patch. Refer to docs.
|
||||||
|
static class OptionsHelpers_IsRobeUnlocked_Patch
|
||||||
|
{
|
||||||
|
static bool Prefix(ref string robe)
|
||||||
|
{
|
||||||
|
//MelonLoader.MelonLogger.Msg("robe : " + robe);
|
||||||
|
|
||||||
|
robe = "Default";
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[HarmonyPatch(typeof(Horror.Menu))]
|
||||||
|
[HarmonyPatch(nameof(Horror.Menu.SetupFlashlight))] //annotation boiler plate to tell Harmony what to patch. Refer to docs.
|
||||||
|
static class Horror_Menu_SetLocked_Patch
|
||||||
|
{
|
||||||
|
static void Prefix(CharacterFlashlight flashlight)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
public bool isHidden { get; set; }
|
||||||
|
public int cost { get; set; }
|
||||||
|
public bool requiresPurchase { get; set; }
|
||||||
|
public bool isOwned { get; set; }
|
||||||
|
*/
|
||||||
|
|
||||||
|
//MelonLoader.MelonLogger.Msg("isHidden : " + flashlight.isHidden);
|
||||||
|
//MelonLoader.MelonLogger.Msg("cost : " + flashlight.cost);
|
||||||
|
//MelonLoader.MelonLogger.Msg("requiresPurchase : " + flashlight.requiresPurchase);
|
||||||
|
//MelonLoader.MelonLogger.Msg("isOwned : " + flashlight.isOwned);
|
||||||
|
|
||||||
|
flashlight.isHidden = false;
|
||||||
|
flashlight.cost = 0;
|
||||||
|
flashlight.requiresPurchase = false;
|
||||||
|
flashlight.isOwned = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# The Town Update
|
# The Town Update
|
||||||
|
Now includes an Unlock All !!!
|
||||||
Everything should be 100% fixed and working for the last update of Devour, have fun !
|
Everything should be 100% fixed and working for the last update of Devour, have fun !
|
||||||
Also if you pay attention to the code you'll see a "Hooks" file that contains a Prefix for SetIsBeingKnockedOut, this would normally sets a godmode but as i'm a pussy i'm too scared to test this so yeah, you may be in godmode 24/7. Please create an issue for the feadback of this feature.
|
|
||||||
|
|
||||||
# DevourClient
|
# DevourClient
|
||||||
|
|
||||||
@@ -32,6 +32,7 @@ Everything about spoofing ehre (steam name, server name, level...) will persist
|
|||||||
* Steam name spoofer (sets it to "patate", again no input text :/)
|
* Steam name spoofer (sets it to "patate", again no input text :/)
|
||||||
* Server name spoofer (sets it to "patate on top !", again no input text :/)
|
* Server name spoofer (sets it to "patate on top !", again no input text :/)
|
||||||
* Fly !! YES ! YOU CAN FLY ! You can also change the speed of it (left shift : down, space : up, up arrow : forward, back arrow : backward, left arrow : left, right arrow : right)
|
* Fly !! YES ! YOU CAN FLY ! You can also change the speed of it (left shift : down, space : up, up arrow : forward, back arrow : backward, left arrow : left, right arrow : right)
|
||||||
|
* Unlock all, including flashlights, perks, outfits. Active by default, can't be turned off, no persistance.
|
||||||
* Instant Win (allows you to win instantaniously on any map, works in singleplayer, but not as a client. May be working as host)
|
* Instant Win (allows you to win instantaniously on any map, works in singleplayer, but not as a client. May be working as host)
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|||||||
Reference in New Issue
Block a user