Skip to content

Commit 093ab26

Browse files
feat: toggle door cheat (#451)
* Add toggle door cheat
1 parent 4db7fe1 commit 093ab26

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

Assets/BossRoom/Scripts/DebugCheats/DebugCheatsManager.cs

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,20 @@ public class DebugCheatsManager : NetworkBehaviour
2727
[SerializeField]
2828
KeyCode m_OpenWindowKeyCode = KeyCode.Slash;
2929

30+
ServerSwitchedDoor m_ServerSwitchedDoor;
31+
32+
ServerSwitchedDoor ServerSwitchedDoor
33+
{
34+
get
35+
{
36+
if (m_ServerSwitchedDoor == null)
37+
{
38+
m_ServerSwitchedDoor = FindObjectOfType<ServerSwitchedDoor>();
39+
}
40+
return m_ServerSwitchedDoor;
41+
}
42+
}
43+
3044
const int k_NbTouchesToOpenWindow = 4;
3145

3246
void Update()
@@ -92,7 +106,7 @@ public void ToggleTeleportMode()
92106

93107
public void ToggleDoor()
94108
{
95-
LogCheatNotImplemented("ToggleDoor");
109+
ToggleDoorServerRpc();
96110
}
97111

98112
public void TogglePortals()
@@ -197,6 +211,20 @@ void HealPlayerServerRpc(ServerRpcParams serverRpcParams = default)
197211
}
198212
}
199213

214+
[ServerRpc(RequireOwnership = false)]
215+
void ToggleDoorServerRpc(ServerRpcParams serverRpcParams = default)
216+
{
217+
if (ServerSwitchedDoor != null)
218+
{
219+
ServerSwitchedDoor.ForceOpen = !ServerSwitchedDoor.ForceOpen;
220+
LogCheatUsedClientRPC(serverRpcParams.Receive.SenderClientId, "ToggleDoor");
221+
}
222+
else
223+
{
224+
UnityEngine.Debug.Log("Could not activate ToggleDoor cheat. Door not found.");
225+
}
226+
}
227+
200228
[ServerRpc(RequireOwnership = false)]
201229
void GoToPostGameServerRpc(ServerRpcParams serverRpcParams = default)
202230
{

Assets/BossRoom/Scripts/Server/ServerSwitchedDoor.cs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ public class ServerSwitchedDoor : NetworkBehaviour
2626
[SerializeField, HideInInspector]
2727
int m_AnimatorDoorOpenBoolID;
2828

29+
#if UNITY_EDITOR || DEVELOPMENT_BUILD
30+
public bool ForceOpen;
31+
#endif
32+
2933
void Awake()
3034
{
3135
// don't let Update() run until after OnNetworkSpawn()
@@ -56,6 +60,10 @@ void Update()
5660
}
5761
}
5862

63+
#if UNITY_EDITOR || DEVELOPMENT_BUILD
64+
isAnySwitchOn |= ForceOpen;
65+
#endif
66+
5967
m_NetworkDoorState.IsOpen.Value = isAnySwitchOn;
6068
}
6169

0 commit comments

Comments
 (0)