0
0
mirror of https://github.com/sp-tarkov/modules.git synced 2025-02-13 06:10:45 -05:00
modules/project/SPT.SinglePlayer/SPTSingleplayerPlugin.cs
Lacyway e76ee6f2cc 310-dev (!168)
This adds a patch that enforces PMC AI to be hostile towards scavs. From my testing they were not attacking random scavs and the player because the boolean failed at the attached screenshot due to PMCs being bosses and the loyalty check. Now it checks if the initial bot type of the group was a PMC Bear or USEC and then if the player it checks for is a scav, they will be forced to be an enemy (which to me seemed natural).
![image](/attachments/4a73df0f-7030-4c61-869f-0a20ba804d8b)

I've tested this on 3 raids on customs and it seems to work fine. Feel free to edit the PR if the logic is flawed, and please test the patch thoroughly to ensure my tests were not just lucky.
Thanks!

Co-authored-by: Lacyway <20912169+Lacyway@users.noreply.github.com>
Reviewed-on: SPT/Modules#168
Co-authored-by: Lacyway <lacyway@noreply.dev.sp-tarkov.com>
Co-committed-by: Lacyway <lacyway@noreply.dev.sp-tarkov.com>
2024-09-19 16:58:47 +00:00

81 lines
3.6 KiB
C#

using System;
using SPT.Common;
using SPT.SinglePlayer.Patches.MainMenu;
using SPT.SinglePlayer.Patches.Progression;
using SPT.SinglePlayer.Patches.RaidFix;
using SPT.SinglePlayer.Patches.ScavMode;
using BepInEx;
using SPT.SinglePlayer.Utils.MainMenu;
namespace SPT.SinglePlayer
{
[BepInPlugin("com.SPT.singleplayer", "spt.Singleplayer", SPTPluginInfo.PLUGIN_VERSION)]
public class SPTSingleplayerPlugin : BaseUnityPlugin
{
public void Awake()
{
Logger.LogInfo("Loading: SPT.SinglePlayer");
try
{
// TODO: check if these patches are needed
new TinnitusFixPatch().Enable(); // Probably needed
//new EmptyInfilFixPatch().Enable();
new MaxBotPatch().Enable(); // Custom code, needed
//new PostRaidHealingPricePatch().Enable(); // Client handles this now
//new HideoutQuestIgnorePatch().Enable(); // Was only needed because FixQuestAchieveControllersPatch was causing issues
//new SpawnProcessNegativeValuePatch().Enable(); // Client handles this edge case, revisit if bot count keeps going up
//new SpawnPmcPatch().Enable(); // 2.5+ years old, PMC spawn system very different, likely not needed
//new FixQuestAchieveControllersPatch().Enable(); // Likely not needed, if cheevos don't appear, revisit patch
// Still need
new ScavExperienceGainPatch().Enable();
new DisablePMCExtractsForScavsPatch().Enable();
new ScavExfilPatch().Enable();
new ScavProfileLoadPatch().Enable();
new ScavPrefabLoadPatch().Enable();
new DisableReadyLocationReadyPatch().Enable();
new BotTemplateLimitPatch().Enable();
new LoadOfflineRaidScreenPatch().Enable();
new AmmoUsedCounterPatch().Enable(); // Necessary for fixing bug #773
new PluginErrorNotifierPatch().Enable();
new GetNewBotTemplatesPatch().Enable();
new MapReadyButtonPatch().Enable();
new RemoveUsedBotProfilePatch().Enable();
new ScavLateStartPatch().Enable();
new ScavSellAllPriceStorePatch().Enable();
new ScavSellAllRequestPatch().Enable();
new ScavRepAdjustmentPatch().Enable();
// 3.10.0
new PVEModeWelcomeMessagePatch().Enable();
new DisableMatchmakerPlayerPreviewButtonsPatch().Enable();
new EnableRefForPVEPatch().Enable();
new EnableRefIntermScreenPatch().Enable();
new EnablePlayerScavPatch().Enable();
new ScavFoundInRaidPatch().Enable();
new GetProfileAtEndOfRaidPatch().Enable();
new FixSavageInventoryScreenPatch().Enable();
//new InsuranceScreenPatch().Enable();
new RemoveStashUpgradeLabelPatch().Enable();
new RemoveClothingItemExternalObtainLabelPatch().Enable();
new FixLocalRaidPatch().Enable();
new ScavIsPlayerEnemyPatch().Enable();
}
catch (Exception ex)
{
Logger.LogError($"A PATCH IN {GetType().Name} FAILED. SUBSEQUENT PATCHES HAVE NOT LOADED");
Logger.LogError($"{GetType().Name}: {ex}");
throw;
}
Logger.LogInfo("Completed: SPT.SinglePlayer");
}
public void Start()
{
TraderServiceManager.GetModdedTraderData();
}
}
}