Skip to content

Commit 35f582e

Browse files
feat: teleport mode cheat (#450)
* Added teleport mode cheat
1 parent 6941143 commit 35f582e

File tree

2 files changed

+55
-30
lines changed

2 files changed

+55
-30
lines changed

Assets/BossRoom/Scripts/DebugCheats/DebugCheatsManager.cs

Lines changed: 45 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ public void ToggleSuperSpeed()
103103

104104
public void ToggleTeleportMode()
105105
{
106-
LogCheatNotImplemented("ToggleTeleportMode");
106+
ToggleTeleportModeServerRpc();
107107
}
108108

109109
public void ToggleDoor()
@@ -190,21 +190,6 @@ void ToggleGodModeServerRpc(ServerRpcParams serverRpcParams = default)
190190
}
191191
}
192192

193-
[ServerRpc(RequireOwnership = false)]
194-
void ToggleSuperSpeedServerRpc(ServerRpcParams serverRpcParams = default)
195-
{
196-
var clientId = serverRpcParams.Receive.SenderClientId;
197-
foreach (var playerServerCharacter in PlayerServerCharacter.GetPlayerServerCharacters())
198-
{
199-
if (playerServerCharacter.OwnerClientId == clientId)
200-
{
201-
playerServerCharacter.Movement.SpeedCheatActivated = !playerServerCharacter.Movement.SpeedCheatActivated;
202-
break;
203-
}
204-
}
205-
LogCheatUsedClientRPC(clientId, "ToggleSuperSpeed");
206-
}
207-
208193
[ServerRpc(RequireOwnership = false)]
209194
void HealPlayerServerRpc(ServerRpcParams serverRpcParams = default)
210195
{
@@ -227,30 +212,38 @@ void HealPlayerServerRpc(ServerRpcParams serverRpcParams = default)
227212
LogCheatUsedClientRPC(serverRpcParams.Receive.SenderClientId, "HealPlayer");
228213
}
229214
}
230-
215+
231216
[ServerRpc(RequireOwnership = false)]
232-
void TogglePortalsServerRpc(ServerRpcParams serverRpcParams = default)
217+
void ToggleSuperSpeedServerRpc(ServerRpcParams serverRpcParams = default)
233218
{
234-
foreach (var portal in FindObjectsOfType<ServerEnemyPortal>())
219+
var clientId = serverRpcParams.Receive.SenderClientId;
220+
foreach (var playerServerCharacter in PlayerServerCharacter.GetPlayerServerCharacters())
235221
{
236-
if (m_DestroyPortalsOnNextToggle)
222+
if (playerServerCharacter.OwnerClientId == clientId)
237223
{
238-
// This will only affect portals that are currently active in a scene and are currently loaded.
239-
// Portals that are already destroyed will not be affected by this, and won't have their cooldown
240-
// reinitialized.
241-
portal.ForceDestroy();
224+
playerServerCharacter.Movement.SpeedCheatActivated = !playerServerCharacter.Movement.SpeedCheatActivated;
225+
break;
242226
}
243-
else
227+
}
228+
LogCheatUsedClientRPC(clientId, "ToggleSuperSpeed");
229+
}
230+
231+
[ServerRpc(RequireOwnership = false)]
232+
void ToggleTeleportModeServerRpc(ServerRpcParams serverRpcParams = default)
233+
{
234+
var clientId = serverRpcParams.Receive.SenderClientId;
235+
foreach (var playerServerCharacter in PlayerServerCharacter.GetPlayerServerCharacters())
236+
{
237+
if (playerServerCharacter.OwnerClientId == clientId)
244238
{
245-
portal.ForceRestart();
239+
playerServerCharacter.Movement.TeleportModeActivated = !playerServerCharacter.Movement.TeleportModeActivated;
240+
break;
246241
}
247242
}
248-
249-
m_DestroyPortalsOnNextToggle = !m_DestroyPortalsOnNextToggle;
250-
LogCheatUsedClientRPC(serverRpcParams.Receive.SenderClientId, "TogglePortals");
243+
LogCheatUsedClientRPC(serverRpcParams.Receive.SenderClientId, "ToggleTeleportMode");
251244
}
252245

253-
[ServerRpc(RequireOwnership = false)]
246+
[ServerRpc(RequireOwnership = false)]
254247
void ToggleDoorServerRpc(ServerRpcParams serverRpcParams = default)
255248
{
256249
if (ServerSwitchedDoor != null)
@@ -264,6 +257,28 @@ void ToggleDoorServerRpc(ServerRpcParams serverRpcParams = default)
264257
}
265258
}
266259

260+
[ServerRpc(RequireOwnership = false)]
261+
void TogglePortalsServerRpc(ServerRpcParams serverRpcParams = default)
262+
{
263+
foreach (var portal in FindObjectsOfType<ServerEnemyPortal>())
264+
{
265+
if (m_DestroyPortalsOnNextToggle)
266+
{
267+
// This will only affect portals that are currently active in a scene and are currently loaded.
268+
// Portals that are already destroyed will not be affected by this, and won't have their cooldown
269+
// reinitialized.
270+
portal.ForceDestroy();
271+
}
272+
else
273+
{
274+
portal.ForceRestart();
275+
}
276+
}
277+
278+
m_DestroyPortalsOnNextToggle = !m_DestroyPortalsOnNextToggle;
279+
LogCheatUsedClientRPC(serverRpcParams.Receive.SenderClientId, "TogglePortals");
280+
}
281+
267282
[ServerRpc(RequireOwnership = false)]
268283
void GoToPostGameServerRpc(ServerRpcParams serverRpcParams = default)
269284
{

Assets/BossRoom/Scripts/Server/Game/Character/ServerCharacterMovement.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,13 @@ public class ServerCharacterMovement : NetworkBehaviour
4545
private Vector3 m_KnockbackVector;
4646

4747
#if UNITY_EDITOR || DEVELOPMENT_BUILD
48+
public bool TeleportModeActivated { get; set; }
49+
4850
const float k_CheatSpeed = 20;
4951

5052
public bool SpeedCheatActivated { get; set; }
5153
#endif
54+
5255
private void Awake()
5356
{
5457
m_NavigationSystem = GameObject.FindGameObjectWithTag(NavigationSystem.NavigationSystemTag).GetComponent<NavigationSystem>();
@@ -74,6 +77,13 @@ public override void OnNetworkSpawn()
7477
/// <param name="position">Position in world space to path to. </param>
7578
public void SetMovementTarget(Vector3 position)
7679
{
80+
#if UNITY_EDITOR || DEVELOPMENT_BUILD
81+
if (TeleportModeActivated)
82+
{
83+
Teleport(position);
84+
return;
85+
}
86+
#endif
7787
m_MovementState = MovementState.PathFollowing;
7888
m_NavPath.SetTargetPosition(position);
7989
}

0 commit comments

Comments
 (0)