From 5b52d74a46421f68ff41a5d4b5a46fa9a9fabd99 Mon Sep 17 00:00:00 2001 From: PaRRoT_tm Date: Wed, 28 May 2025 20:38:35 +0200 Subject: [PATCH 1/3] Changes that allow considering the range of a Teleport using a custom Scale --- Features/Serializable/SerializableTeleport.cs | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/Features/Serializable/SerializableTeleport.cs b/Features/Serializable/SerializableTeleport.cs index 00dc294..d447ff7 100644 --- a/Features/Serializable/SerializableTeleport.cs +++ b/Features/Serializable/SerializableTeleport.cs @@ -22,14 +22,25 @@ public class SerializableTeleport : SerializableObject, IIndicatorDefinition Quaternion rotation = room.GetAbsoluteRotation(Rotation); _prevIndex = Index; gameObject.transform.SetLocalPositionAndRotation(position, rotation); - - if (instance == null) - { - gameObject.AddComponent().isTrigger = true; - gameObject.AddComponent(); - } - - return gameObject; + BoxCollider collider; + + if (instance == null) + { + collider = gameObject.AddComponent(); + collider.isTrigger = true; + gameObject.AddComponent(); + } + else + { + collider = gameObject.GetComponent(); + } + + if (collider != null) + { + collider.size = Scale; + } + + return gameObject; } public GameObject SpawnOrUpdateIndicator(Room room, GameObject? instance = null) From 20d21965f20b6aeacb2bf756cd45186f2556a587 Mon Sep 17 00:00:00 2001 From: PaRRoT_tm Date: Wed, 28 May 2025 22:49:29 +0200 Subject: [PATCH 2/3] Added the Chance --- Features/Objects/TeleportObject.cs | 5 ++++- Features/Serializable/SerializableTeleport.cs | 6 ++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/Features/Objects/TeleportObject.cs b/Features/Objects/TeleportObject.cs index 309f149..6e13c0e 100644 --- a/Features/Objects/TeleportObject.cs +++ b/Features/Objects/TeleportObject.cs @@ -42,7 +42,10 @@ public void OnTriggerEnter(Collider other) if (NextTimeUse > DateTime.Now) return; - TeleportObject? target = GetRandomTarget(); + if (UnityEngine.Random.Range(0, 100) >= Base.Chance) + return; + + TeleportObject? target = GetRandomTarget(); if (target == null) return; diff --git a/Features/Serializable/SerializableTeleport.cs b/Features/Serializable/SerializableTeleport.cs index d447ff7..ed1d886 100644 --- a/Features/Serializable/SerializableTeleport.cs +++ b/Features/Serializable/SerializableTeleport.cs @@ -13,9 +13,11 @@ public class SerializableTeleport : SerializableObject, IIndicatorDefinition { public List Targets { get; set; } = []; - public float Cooldown { get; set; } = 5f; + public int Chance { get; set; } = 100; - public override GameObject? SpawnOrUpdateObject(Room? room = null, GameObject? instance = null) + public float Cooldown { get; set; } = 5f; + + public override GameObject? SpawnOrUpdateObject(Room? room = null, GameObject? instance = null) { GameObject gameObject = instance ?? new GameObject("Teleport"); Vector3 position = room.GetAbsolutePosition(Position); From e3779b3a3989f8e3ee1a5fdfa677fdc3117344e6 Mon Sep 17 00:00:00 2001 From: PaRRoT_tm Date: Thu, 29 May 2025 02:12:02 +0200 Subject: [PATCH 3/3] Implemented AllowedRoles --- Features/Objects/TeleportObject.cs | 3 +++ Features/Serializable/SerializableTeleport.cs | 23 +++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/Features/Objects/TeleportObject.cs b/Features/Objects/TeleportObject.cs index 6e13c0e..df9bddc 100644 --- a/Features/Objects/TeleportObject.cs +++ b/Features/Objects/TeleportObject.cs @@ -45,6 +45,9 @@ public void OnTriggerEnter(Collider other) if (UnityEngine.Random.Range(0, 100) >= Base.Chance) return; + if (!Base.AllowedRoles.Contains(player.Role.ToString())) + return; + TeleportObject? target = GetRandomTarget(); if (target == null) return; diff --git a/Features/Serializable/SerializableTeleport.cs b/Features/Serializable/SerializableTeleport.cs index ed1d886..0ee4338 100644 --- a/Features/Serializable/SerializableTeleport.cs +++ b/Features/Serializable/SerializableTeleport.cs @@ -15,6 +15,29 @@ public class SerializableTeleport : SerializableObject, IIndicatorDefinition public int Chance { get; set; } = 100; + public List AllowedRoles { get; set; } = new List() + { + "Scp0492", + "Scp049", + "Scp096", + "Scp106", + "Scp173", + "Scp939", + "Scp3114", + "ClassD", + "Scientist", + "FacilityGuard", + "NtfPrivate", + "NtfSergeant", + "NtfSpecialist", + "NtfCaptain", + "ChaosConscript", + "ChaosRifleman", + "ChaosRepressor", + "ChaosMarauder", + "Tutorial", + }; + public float Cooldown { get; set; } = 5f; public override GameObject? SpawnOrUpdateObject(Room? room = null, GameObject? instance = null)