Skip to content

Commit 58a66a8

Browse files
authored
fix escape add pocked dim for scale change (tall plp cant escape)
1 parent 2d147e2 commit 58a66a8

File tree

5 files changed

+65
-1
lines changed

5 files changed

+65
-1
lines changed

SimpleCustomRoles/Handler/PlayerHandler.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ public override void OnPlayerDroppingItem(PlayerDroppingItemEventArgs ev)
4242

4343
public override void OnPlayerHurting(PlayerHurtingEventArgs ev)
4444
{
45+
// TODO: Rewrite this with any damage.
4546
float Damage = ev.DamageHandler.GetDamageValue();
4647
DamageType damageType = ev.DamageHandler.GetDamageType();
4748
if (ev.Attacker != null && CustomRoleHelpers.TryGetCustomRole(ev.Attacker, out var attacker_role))
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
using LabApi.Events.Arguments.PlayerEvents;
2+
using LabApi.Events.Arguments.ServerEvents;
3+
using LabApi.Events.CustomHandlers;
4+
using LabApi.Features.Stores;
5+
using LabApi.Features.Wrappers;
6+
using LabApiExtensions.Enums;
7+
using LabApiExtensions.Extensions;
8+
using MEC;
9+
using SimpleCustomRoles.Helpers;
10+
using SimpleCustomRoles.RoleInfo;
11+
using SimpleCustomRoles.RoleYaml;
12+
using SimpleCustomRoles.RoleYaml.Enums;
13+
14+
namespace SimpleCustomRoles.Handler;
15+
16+
public class PocketHandler : CustomEventsHandler
17+
{
18+
// TODO: Add feature for custom roles to always/never escape, disable to enter to pocket.
19+
20+
public override void OnPlayerEnteredPocketDimension(PlayerEnteredPocketDimensionEventArgs ev)
21+
{
22+
if (!CustomRoleHelpers.TryGetCustomRoleStorage(ev.Player, out var storage))
23+
return;
24+
storage.ChangeScale();
25+
}
26+
27+
public override void OnPlayerLeftPocketDimension(PlayerLeftPocketDimensionEventArgs ev)
28+
{
29+
if (!CustomRoleHelpers.TryGetCustomRoleStorage(ev.Player, out var storage))
30+
return;
31+
if (!ev.IsSuccessful)
32+
return;
33+
storage.ChangeScale();
34+
}
35+
}

SimpleCustomRoles/Helpers/CustomRoleHelpers.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,16 @@ public static bool TryGetCustomRole(Player player, out CustomRoleBaseInfo custom
8686
return customRoleInfo is not null;
8787
}
8888

89+
90+
public static bool TryGetCustomRoleStorage(Player player, out CustomRoleInfoStorage storage)
91+
{
92+
storage = null;
93+
if (player == null)
94+
return false;
95+
storage = CustomDataStore.GetOrAdd<CustomRoleInfoStorage>(player);
96+
return storage.Role is not null;
97+
}
98+
8999
public static bool Contains(Player player)
90100
{
91101
return TryGetCustomRole(player, out var role) && role is not null;

SimpleCustomRoles/Main.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ internal class Main : Plugin<Config>
2020
#region Plugin Info
2121
public override string Author => "SlejmUr";
2222
public override string Name => "SimpleCustomRoles";
23-
public override Version Version => new(0, 5, 3);
23+
public override Version Version => new(0, 5, 4);
2424
public override string Description => "Add simple YAML Support for creating custom roles.";
2525
public override Version RequiredApiVersion => new(LabApiProperties.CompiledVersion);
2626
#endregion
@@ -30,6 +30,7 @@ internal class Main : Plugin<Config>
3030
public List<CustomRoleBaseInfo> EscapeRoles = [];
3131

3232
private ServerHandler serverHandler;
33+
private PocketHandler pocketHandler;
3334
private PlayerHandler playerHandler;
3435
private Scp0492Handler scp0492Handler;
3536
private Scp049Handler scp049Handler;
@@ -54,6 +55,9 @@ public override void Enable()
5455
playerHandler = new();
5556
CustomHandlersManager.RegisterEventsHandler(playerHandler);
5657

58+
pocketHandler = new();
59+
CustomHandlersManager.RegisterEventsHandler(pocketHandler);
60+
5761
scp049Handler = new();
5862
CustomHandlersManager.RegisterEventsHandler(scp049Handler);
5963

@@ -87,6 +91,9 @@ public override void Disable()
8791
CustomHandlersManager.RegisterEventsHandler(playerHandler);
8892
playerHandler = null;
8993

94+
CustomHandlersManager.RegisterEventsHandler(pocketHandler);
95+
pocketHandler = null;
96+
9097
CustomHandlersManager.RegisterEventsHandler(scp049Handler);
9198
scp049Handler = null;
9299

SimpleCustomRoles/RoleInfo/CustomRoleInfoStorage.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ namespace SimpleCustomRoles.RoleInfo;
2020

2121
public class CustomRoleInfoStorage(Player owner) : CustomDataStore(owner)
2222
{
23+
private bool onDefaultScale;
2324
public CustomRoleBaseInfo Role;
2425
public string OldCustomInfo = string.Empty;
2526
public List<Pickup> ItemsAfterEscaped = [];
@@ -45,6 +46,16 @@ public void Reset()
4546
Owner.SetRole(Owner.Role, PlayerRoles.RoleChangeReason.None, PlayerRoles.RoleSpawnFlags.None);
4647
}
4748

49+
public void ChangeScale()
50+
{
51+
Vector3 scale = Role.Fpc.Scale;
52+
if (!onDefaultScale)
53+
scale = Vector3;
54+
ScaleHelper.SetScale(Owner, scale, false, true);
55+
56+
onDefaultScale = !onDefaultScale;
57+
}
58+
4859
internal IEnumerator<float> ApplyCor()
4960
{
5061
yield return Timing.WaitForSeconds(0.1f);

0 commit comments

Comments
 (0)