Seperate vanilla vent data receiving from the actual button

This commit is contained in:
amber committed 2026-06-11 22:34:27 -04:00
1 parent c59ed8eaa6
commit c1d0bb5d26
5 files changed
+18 -5

No files matched your search

+2 -1
View File
@@ -18,7 +18,8 @@ public class NeutralKillerRole : ImpostorRole, ICustomRole
{ {
UseVanillaKillButton = true, UseVanillaKillButton = true,
CanGetKilled = true, CanGetKilled = true,
CanUseVent = true, GetsVentData = true,
UseVanillaVentButton = true,
}; };
public RoleOptionsGroup RoleOptionsGroup { get; } = new("Outcast", Color.gray); public RoleOptionsGroup RoleOptionsGroup { get; } = new("Outcast", Color.gray);
+1 -1
View File
@@ -34,7 +34,7 @@ public static class HudManagerPatches
if (role is ICustomRole customRole) if (role is ICustomRole customRole)
{ {
__instance.KillButton.ToggleVisible(isActive && customRole.Configuration.UseVanillaKillButton && !flag); __instance.KillButton.ToggleVisible(isActive && customRole.Configuration.UseVanillaKillButton && !flag);
__instance.ImpostorVentButton.ToggleVisible(isActive && customRole.Configuration.CanUseVent && !flag); __instance.ImpostorVentButton.ToggleVisible(isActive && (customRole.Configuration.CanUseVent || customRole.Configuration.UseVanillaVentButton) && !flag);
__instance.SabotageButton.gameObject.SetActive(isActive && customRole.Configuration.CanUseSabotage); __instance.SabotageButton.gameObject.SetActive(isActive && customRole.Configuration.CanUseSabotage);
} }
+1 -1
View File
@@ -28,7 +28,7 @@ internal static class VentCanUsePatch
var @object = pc.Object; var @object = pc.Object;
var role = @object.Data.Role; var role = @object.Data.Role;
var canVent = role is ICustomRole customRole ? customRole.Configuration.CanUseVent : role.CanVent; var canVent = role is ICustomRole customRole ? customRole.Configuration.CanUseVent || customRole.Configuration.GetsVentData || customRole.Configuration.UseVanillaVentButton : role.CanVent;
couldUse = canVent; couldUse = canVent;
var modifiers = @object.GetModifierComponent().ActiveModifiers; var modifiers = @object.GetModifierComponent().ActiveModifiers;
+13 -1
View File
@@ -39,7 +39,8 @@ public record struct CustomRoleConfiguration
GhostRole = role.Team is ModdedRoleTeams.Impostor ? RoleTypes.ImpostorGhost : RoleTypes.CrewmateGhost; GhostRole = role.Team is ModdedRoleTeams.Impostor ? RoleTypes.ImpostorGhost : RoleTypes.CrewmateGhost;
CanGetKilled = roleBehaviour?.IsDead == false && role.Team is not ModdedRoleTeams.Impostor; CanGetKilled = roleBehaviour?.IsDead == false && role.Team is not ModdedRoleTeams.Impostor;
UseVanillaKillButton = role.Team is ModdedRoleTeams.Impostor; UseVanillaKillButton = role.Team is ModdedRoleTeams.Impostor;
CanUseVent = role.Team is ModdedRoleTeams.Impostor; GetsVentData = role.Team is ModdedRoleTeams.Impostor;
UseVanillaVentButton = role.Team is ModdedRoleTeams.Impostor;
CanUseSabotage = role.Team is ModdedRoleTeams.Impostor; CanUseSabotage = role.Team is ModdedRoleTeams.Impostor;
TasksCountForProgress = role.Team is ModdedRoleTeams.Crewmate; TasksCountForProgress = role.Team is ModdedRoleTeams.Crewmate;
HideSettings = roleBehaviour?.IsDead == true; HideSettings = roleBehaviour?.IsDead == true;
@@ -111,8 +112,19 @@ public record struct CustomRoleConfiguration
/// <summary> /// <summary>
/// Gets or sets a value indicating whether the role can use vents. /// Gets or sets a value indicating whether the role can use vents.
/// </summary> /// </summary>
[Obsolete("The equivalent of having both GetsVentData and UseVanillaVentButton as true. Only remains for compatability.")]
public bool CanUseVent { get; set; } public bool CanUseVent { get; set; }
/// <summary>
/// Gets or sets a value indicating whether the role can receive vanilla vent data.
/// </summary>
public bool GetsVentData { get; set; }
/// <summary>
/// Gets or sets a value indicating whether the role can use the vanilla vent button.
/// </summary>
public bool UseVanillaVentButton { get; set; }
/// <summary> /// <summary>
/// Gets or sets a value indicating whether the role can use the sabotage button. /// Gets or sets a value indicating whether the role can use the sabotage button.
/// </summary> /// </summary>
+1 -1
View File
@@ -139,7 +139,7 @@ public static class CustomRoleManager
roleBehaviour.CanBeKilled = customRole.Configuration.CanGetKilled; roleBehaviour.CanBeKilled = customRole.Configuration.CanGetKilled;
roleBehaviour.CanUseKillButton = customRole.Configuration.UseVanillaKillButton; roleBehaviour.CanUseKillButton = customRole.Configuration.UseVanillaKillButton;
roleBehaviour.TasksCountTowardProgress = customRole.Configuration.TasksCountForProgress; roleBehaviour.TasksCountTowardProgress = customRole.Configuration.TasksCountForProgress;
roleBehaviour.CanVent = customRole.Configuration.CanUseVent; roleBehaviour.CanVent = customRole.Configuration.CanUseVent || customRole.Configuration.GetsVentData || customRole.Configuration.UseVanillaVentButton;
roleBehaviour.DefaultGhostRole = customRole.Configuration.GhostRole; roleBehaviour.DefaultGhostRole = customRole.Configuration.GhostRole;
roleBehaviour.MaxCount = customRole.Configuration.MaxRoleCount; roleBehaviour.MaxCount = customRole.Configuration.MaxRoleCount;
roleBehaviour.RoleScreenshot = customRole.Configuration.OptionsScreenshot?.LoadAsset(); roleBehaviour.RoleScreenshot = customRole.Configuration.OptionsScreenshot?.LoadAsset();