Skip to content

Commit 8160543

Browse files
feat: upgrade to NGO v1.8.1, conversion to universal Rpcs, utility assembly includes Unity.Collections [MTT-8188] (#883)
* upgrade to NGO v1.8.1, conversion to universal Rpcs, utility assembly includes Unity.Collections * fix for connected clients receiving new shutdown message from host * Utilities package also upgraded to NGO v1.8.1 * changelog additions * readme badge with NGO upgrade updated * added Server/Client prefixes for previous Rpc methods * update to Utilities changelog * using RpcTargetUse Temp since clientId may change frequently
1 parent aa73d28 commit 8160543

30 files changed

+113
-104
lines changed

Assets/Scripts/ConnectionManagement/ConnectionState/ClientConnectedState.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
using System;
21
using Unity.BossRoom.UnityServices.Lobbies;
32
using UnityEngine;
43
using VContainer;
@@ -27,7 +26,8 @@ public override void Exit() { }
2726
public override void OnClientDisconnect(ulong _)
2827
{
2928
var disconnectReason = m_ConnectionManager.NetworkManager.DisconnectReason;
30-
if (string.IsNullOrEmpty(disconnectReason))
29+
if (string.IsNullOrEmpty(disconnectReason) ||
30+
disconnectReason == "Disconnected due to host shutting down.")
3131
{
3232
m_ConnectStatusPublisher.Publish(ConnectStatus.Reconnecting);
3333
m_ConnectionManager.ChangeState(m_ConnectionManager.m_ClientReconnecting);

Assets/Scripts/Gameplay/Action/ConcreteActions/AOEAction.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public override bool OnStart(ServerCharacter serverCharacter)
3535
// This means we are responsible for triggering reaction-anims ourselves, which we do in PerformAoe()
3636
Data.TargetIds = new ulong[0];
3737
serverCharacter.serverAnimationHandler.NetworkAnimator.SetTrigger(Config.Anim);
38-
serverCharacter.clientCharacter.RecvDoActionClientRPC(Data);
38+
serverCharacter.clientCharacter.ClientPlayActionRpc(Data);
3939
return ActionConclusion.Continue;
4040
}
4141

Assets/Scripts/Gameplay/Action/ConcreteActions/ChargedLaunchProjectileAction.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public override bool OnStart(ServerCharacter serverCharacter)
5353
serverCharacter.serverAnimationHandler.NetworkAnimator.SetTrigger(Config.Anim);
5454

5555
// start the "charging up" ActionFX
56-
serverCharacter.clientCharacter.RecvDoActionClientRPC(Data);
56+
serverCharacter.clientCharacter.ClientPlayActionRpc(Data);
5757

5858
// sanity-check our data a bit
5959
Debug.Assert(Config.Projectiles.Length > 1, $"Action {name} has {Config.Projectiles.Length} Projectiles. Expected at least 2!");
@@ -122,7 +122,7 @@ private void StopChargingUp(ServerCharacter parent)
122122
parent.serverAnimationHandler.NetworkAnimator.SetTrigger(Config.Anim2);
123123
}
124124

125-
parent.clientCharacter.RecvStopChargingUpClientRpc(GetPercentChargedUp());
125+
parent.clientCharacter.ClientStopChargingUpRpc(GetPercentChargedUp());
126126
if (!m_HitByAttack)
127127
{
128128
LaunchProjectile(parent);

Assets/Scripts/Gameplay/Action/ConcreteActions/ChargedShieldAction.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ public override bool OnStart(ServerCharacter serverCharacter)
5252
// raise the start trigger to start the animation loop!
5353
serverCharacter.serverAnimationHandler.NetworkAnimator.SetTrigger(Config.Anim);
5454

55-
serverCharacter.clientCharacter.RecvDoActionClientRPC(Data);
55+
serverCharacter.clientCharacter.ClientPlayActionRpc(Data);
5656
return true;
5757
}
5858

@@ -145,7 +145,7 @@ private void StopChargingUp(ServerCharacter parent)
145145
if (IsChargingUp())
146146
{
147147
m_StoppedChargingUpTime = Time.time;
148-
parent.clientCharacter.RecvStopChargingUpClientRpc(GetPercentChargedUp());
148+
parent.clientCharacter.ClientStopChargingUpRpc(GetPercentChargedUp());
149149

150150
parent.serverAnimationHandler.NetworkAnimator.SetTrigger(Config.Anim2);
151151

Assets/Scripts/Gameplay/Action/ConcreteActions/DashAttackAction.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public override bool OnStart(ServerCharacter serverCharacter)
3838
serverCharacter.serverAnimationHandler.NetworkAnimator.SetTrigger(Config.Anim);
3939

4040
// tell clients to visualize this action
41-
serverCharacter.clientCharacter.RecvDoActionClientRPC(Data);
41+
serverCharacter.clientCharacter.ClientPlayActionRpc(Data);
4242

4343
return ActionConclusion.Continue;
4444
}
@@ -80,7 +80,7 @@ public override void Cancel(ServerCharacter serverCharacter)
8080

8181
// because the client-side visualization of the action moves the character visualization around,
8282
// we need to explicitly end the client-side visuals when we abort
83-
serverCharacter.clientCharacter.RecvCancelActionsByPrototypeIDClientRpc(ActionID);
83+
serverCharacter.clientCharacter.ClientCancelActionsByPrototypeIDRpc(ActionID);
8484

8585
}
8686

Assets/Scripts/Gameplay/Action/ConcreteActions/FXProjectileTargetedAction.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public override bool OnStart(ServerCharacter serverCharacter)
4949

5050
serverCharacter.serverAnimationHandler.NetworkAnimator.SetTrigger(Config.Anim);
5151
// tell clients to visualize this action
52-
serverCharacter.clientCharacter.RecvDoActionClientRPC(Data);
52+
serverCharacter.clientCharacter.ClientPlayActionRpc(Data);
5353
return true;
5454
}
5555

@@ -84,7 +84,7 @@ public override void Cancel(ServerCharacter serverCharacter)
8484
{
8585
if (!m_ImpactedTarget)
8686
{
87-
serverCharacter.clientCharacter.RecvCancelActionsByPrototypeIDClientRpc(ActionID);
87+
serverCharacter.clientCharacter.ClientCancelActionsByPrototypeIDRpc(ActionID);
8888
}
8989
}
9090

Assets/Scripts/Gameplay/Action/ConcreteActions/LaunchProjectileAction.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public override bool OnStart(ServerCharacter serverCharacter)
2121
serverCharacter.physicsWrapper.Transform.forward = Data.Direction;
2222

2323
serverCharacter.serverAnimationHandler.NetworkAnimator.SetTrigger(Config.Anim);
24-
serverCharacter.clientCharacter.RecvDoActionClientRPC(Data);
24+
serverCharacter.clientCharacter.ClientPlayActionRpc(Data);
2525
return true;
2626
}
2727

Assets/Scripts/Gameplay/Action/ConcreteActions/MeleeAction.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public override bool OnStart(ServerCharacter serverCharacter)
5151
}
5252

5353
serverCharacter.serverAnimationHandler.NetworkAnimator.SetTrigger(Config.Anim);
54-
serverCharacter.clientCharacter.RecvDoActionClientRPC(Data);
54+
serverCharacter.clientCharacter.ClientPlayActionRpc(Data);
5555
return true;
5656
}
5757

Assets/Scripts/Gameplay/Action/ConcreteActions/StealthModeAction.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public override bool OnStart(ServerCharacter serverCharacter)
2828
{
2929
serverCharacter.serverAnimationHandler.NetworkAnimator.SetTrigger(Config.Anim);
3030

31-
serverCharacter.clientCharacter.RecvDoActionClientRPC(Data);
31+
serverCharacter.clientCharacter.ClientPlayActionRpc(Data);
3232

3333
return true;
3434
}
@@ -90,7 +90,7 @@ private void EndStealth(ServerCharacter parent)
9090
// presses the Stealth button twice in a row: "end this Stealth action and start a new one". If we cancelled
9191
// all actions of this type in Cancel(), we'd end up cancelling both the old AND the new one, because
9292
// the new one would already be in the clients' actionFX queue.
93-
parent.clientCharacter.RecvCancelActionsByPrototypeIDClientRpc(ActionID);
93+
parent.clientCharacter.ClientCancelActionsByPrototypeIDRpc(ActionID);
9494
}
9595
}
9696

Assets/Scripts/Gameplay/Action/ConcreteActions/TossAction.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public override bool OnStart(ServerCharacter serverCharacter)
4040
}
4141

4242
serverCharacter.serverAnimationHandler.NetworkAnimator.SetTrigger(Config.Anim);
43-
serverCharacter.clientCharacter.RecvDoActionClientRPC(Data);
43+
serverCharacter.clientCharacter.ClientPlayActionRpc(Data);
4444
return true;
4545
}
4646

Assets/Scripts/Gameplay/Action/ConcreteActions/TrampleAction.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ public override bool OnStart(ServerCharacter serverCharacter)
8585
serverCharacter.serverAnimationHandler.NetworkAnimator.SetTrigger(Config.Anim);
8686
}
8787

88-
serverCharacter.clientCharacter.RecvDoActionClientRPC(Data);
88+
serverCharacter.clientCharacter.ClientPlayActionRpc(Data);
8989
return true;
9090
}
9191

@@ -238,7 +238,7 @@ private void StunSelf(ServerCharacter parent)
238238
if (!m_WasStunned)
239239
{
240240
parent.Movement.CancelMove();
241-
parent.clientCharacter.RecvCancelAllActionsClientRpc();
241+
parent.clientCharacter.ClientCancelAllActionsRpc();
242242
}
243243
m_WasStunned = true;
244244
}

Assets/Scripts/Gameplay/Action/Input/ChargedActionInput.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ private void Start()
2626

2727
public override void OnReleaseKey()
2828
{
29-
m_PlayerOwner.RecvStopChargingUpServerRpc();
29+
m_PlayerOwner.ServerStopChargingUpRpc();
3030
Destroy(gameObject);
3131
}
3232

Assets/Scripts/Gameplay/DebugCheats/DebugCheatsManager.cs

+32-33
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
using System;
21
using Unity.BossRoom.ConnectionManagement;
32
using Unity.BossRoom.Gameplay.GameplayObjects;
43
using Unity.BossRoom.Gameplay.GameplayObjects.Character;
@@ -77,77 +76,77 @@ static bool AnyTouchDown()
7776

7877
public void SpawnEnemy()
7978
{
80-
SpawnEnemyServerRpc();
79+
ServerSpawnEnemyRpc();
8180
}
8281

8382
public void SpawnBoss()
8483
{
85-
SpawnBossServerRpc();
84+
ServerSpawnBossRpc();
8685
}
8786

8887
public void KillTarget()
8988
{
90-
KillTargetServerRpc();
89+
ServerKillTargetRpc();
9190
}
9291

9392
public void KillAllEnemies()
9493
{
95-
KillAllEnemiesServerRpc();
94+
ServerKillAllEnemiesRpc();
9695
}
9796

9897
public void ToggleGodMode()
9998
{
100-
ToggleGodModeServerRpc();
99+
ServerToggleGodModeRpc();
101100
}
102101

103102
public void HealPlayer()
104103
{
105-
HealPlayerServerRpc();
104+
ServerHealPlayerRpc();
106105
}
107106

108107
public void ToggleSuperSpeed()
109108
{
110-
ToggleSuperSpeedServerRpc();
109+
ServerToggleSuperSpeedRpc();
111110
}
112111

113112
public void ToggleTeleportMode()
114113
{
115-
ToggleTeleportModeServerRpc();
114+
ServerToggleTeleportModeRpc();
116115
}
117116

118117
public void ToggleDoor()
119118
{
120-
ToggleDoorServerRpc();
119+
ServerToggleDoorRpc();
121120
}
122121

123122
public void TogglePortals()
124123
{
125-
TogglePortalsServerRpc();
124+
ServerTogglePortalsRpc();
126125
}
127126

128127
public void GoToPostGame()
129128
{
130129
GoToPostGameServerRpc();
131130
}
132131

133-
[ServerRpc(RequireOwnership = false)]
134-
void SpawnEnemyServerRpc(ServerRpcParams serverRpcParams = default)
132+
[Rpc(SendTo.Server, RequireOwnership = false)]
133+
void ServerSpawnEnemyRpc(RpcParams serverRpcParams = default)
135134
{
136135
var newEnemy = Instantiate(m_EnemyPrefab);
137136
newEnemy.SpawnWithOwnership(NetworkManager.Singleton.LocalClientId, true);
138137
PublishCheatUsedMessage(serverRpcParams.Receive.SenderClientId, "SpawnEnemy");
139138
}
140139

141-
[ServerRpc(RequireOwnership = false)]
142-
void SpawnBossServerRpc(ServerRpcParams serverRpcParams = default)
140+
[Rpc(SendTo.Server, RequireOwnership = false)]
141+
void ServerSpawnBossRpc(RpcParams serverRpcParams = default)
143142
{
144143
var newEnemy = Instantiate(m_BossPrefab);
145144
newEnemy.SpawnWithOwnership(NetworkManager.Singleton.LocalClientId, true);
146145
PublishCheatUsedMessage(serverRpcParams.Receive.SenderClientId, "SpawnBoss");
147146
}
148147

149-
[ServerRpc(RequireOwnership = false)]
150-
void KillTargetServerRpc(ServerRpcParams serverRpcParams = default)
148+
[Rpc(SendTo.Server, RequireOwnership = false)]
149+
void ServerKillTargetRpc(RpcParams serverRpcParams = default)
151150
{
152151
ulong clientId = serverRpcParams.Receive.SenderClientId;
153152
var playerServerCharacter = PlayerServerCharacter.GetPlayerServerCharacter(clientId);
@@ -171,8 +170,8 @@ void KillTargetServerRpc(ServerRpcParams serverRpcParams = default)
171170
}
172171
}
173172

174-
[ServerRpc(RequireOwnership = false)]
175-
void KillAllEnemiesServerRpc(ServerRpcParams serverRpcParams = default)
173+
[Rpc(SendTo.Server, RequireOwnership = false)]
174+
void ServerKillAllEnemiesRpc(RpcParams serverRpcParams = default)
176175
{
177176
foreach (var serverCharacter in FindObjectsOfType<ServerCharacter>())
178177
{
@@ -187,8 +186,8 @@ void KillAllEnemiesServerRpc(ServerRpcParams serverRpcParams = default)
187186
PublishCheatUsedMessage(serverRpcParams.Receive.SenderClientId, "KillAllEnemies");
188187
}
189188

190-
[ServerRpc(RequireOwnership = false)]
191-
void ToggleGodModeServerRpc(ServerRpcParams serverRpcParams = default)
189+
[Rpc(SendTo.Server, RequireOwnership = false)]
190+
void ServerToggleGodModeRpc(RpcParams serverRpcParams = default)
192191
{
193192
var clientId = serverRpcParams.Receive.SenderClientId;
194193
var playerServerCharacter = PlayerServerCharacter.GetPlayerServerCharacter(clientId);
@@ -199,8 +198,8 @@ void ToggleGodModeServerRpc(ServerRpcParams serverRpcParams = default)
199198
}
200199
}
201200

202-
[ServerRpc(RequireOwnership = false)]
203-
void HealPlayerServerRpc(ServerRpcParams serverRpcParams = default)
201+
[Rpc(SendTo.Server, RequireOwnership = false)]
202+
void ServerHealPlayerRpc(RpcParams serverRpcParams = default)
204203
{
205204
var clientId = serverRpcParams.Receive.SenderClientId;
206205
var playerServerCharacter = PlayerServerCharacter.GetPlayerServerCharacter(clientId);
@@ -222,8 +221,8 @@ void HealPlayerServerRpc(ServerRpcParams serverRpcParams = default)
222221
}
223222
}
224223

225-
[ServerRpc(RequireOwnership = false)]
226-
void ToggleSuperSpeedServerRpc(ServerRpcParams serverRpcParams = default)
224+
[Rpc(SendTo.Server, RequireOwnership = false)]
225+
void ServerToggleSuperSpeedRpc(RpcParams serverRpcParams = default)
227226
{
228227
var clientId = serverRpcParams.Receive.SenderClientId;
229228
foreach (var playerServerCharacter in PlayerServerCharacter.GetPlayerServerCharacters())
@@ -237,8 +236,8 @@ void ToggleSuperSpeedServerRpc(ServerRpcParams serverRpcParams = default)
237236
PublishCheatUsedMessage(clientId, "ToggleSuperSpeed");
238237
}
239238

240-
[ServerRpc(RequireOwnership = false)]
241-
void ToggleTeleportModeServerRpc(ServerRpcParams serverRpcParams = default)
239+
[Rpc(SendTo.Server, RequireOwnership = false)]
240+
void ServerToggleTeleportModeRpc(RpcParams serverRpcParams = default)
242241
{
243242
var clientId = serverRpcParams.Receive.SenderClientId;
244243
foreach (var playerServerCharacter in PlayerServerCharacter.GetPlayerServerCharacters())
@@ -252,8 +251,8 @@ void ToggleTeleportModeServerRpc(ServerRpcParams serverRpcParams = default)
252251
PublishCheatUsedMessage(serverRpcParams.Receive.SenderClientId, "ToggleTeleportMode");
253252
}
254253

255-
[ServerRpc(RequireOwnership = false)]
256-
void ToggleDoorServerRpc(ServerRpcParams serverRpcParams = default)
254+
[Rpc(SendTo.Server, RequireOwnership = false)]
255+
void ServerToggleDoorRpc(RpcParams serverRpcParams = default)
257256
{
258257
if (SwitchedDoor != null)
259258
{
@@ -266,8 +265,8 @@ void ToggleDoorServerRpc(ServerRpcParams serverRpcParams = default)
266265
}
267266
}
268267

269-
[ServerRpc(RequireOwnership = false)]
270-
void TogglePortalsServerRpc(ServerRpcParams serverRpcParams = default)
268+
[Rpc(SendTo.Server, RequireOwnership = false)]
269+
void ServerTogglePortalsRpc(RpcParams serverRpcParams = default)
271270
{
272271
foreach (var portal in FindObjectsOfType<EnemyPortal>())
273272
{
@@ -288,8 +287,8 @@ void TogglePortalsServerRpc(ServerRpcParams serverRpcParams = default)
288287
PublishCheatUsedMessage(serverRpcParams.Receive.SenderClientId, "TogglePortals");
289288
}
290289

291-
[ServerRpc(RequireOwnership = false)]
292-
void GoToPostGameServerRpc(ServerRpcParams serverRpcParams = default)
290+
[Rpc(SendTo.Server, RequireOwnership = false)]
291+
void GoToPostGameServerRpc(RpcParams serverRpcParams = default)
293292
{
294293
SceneLoaderWrapper.Instance.LoadScene("PostGame", useNetworkSceneManager: true);
295294
PublishCheatUsedMessage(serverRpcParams.Receive.SenderClientId, "GoToPostGame");

Assets/Scripts/Gameplay/GameState/ClientCharSelectState.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -416,7 +416,7 @@ public void OnPlayerClickedSeat(int seatIdx)
416416
{
417417
if (m_NetworkCharSelection.IsSpawned)
418418
{
419-
m_NetworkCharSelection.ChangeSeatServerRpc(NetworkManager.Singleton.LocalClientId, seatIdx, false);
419+
m_NetworkCharSelection.ServerChangeSeatRpc(NetworkManager.Singleton.LocalClientId, seatIdx, false);
420420
}
421421
}
422422

@@ -428,7 +428,7 @@ public void OnPlayerClickedReady()
428428
if (m_NetworkCharSelection.IsSpawned)
429429
{
430430
// request to lock in or unlock if already locked in
431-
m_NetworkCharSelection.ChangeSeatServerRpc(NetworkManager.Singleton.LocalClientId, m_LastSeatSelected, !m_HasLocalPlayerLockedIn);
431+
m_NetworkCharSelection.ServerChangeSeatRpc(NetworkManager.Singleton.LocalClientId, m_LastSeatSelected, !m_HasLocalPlayerLockedIn);
432432
}
433433
}
434434

Assets/Scripts/Gameplay/GameState/NetworkCharSelection.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,8 @@ private void Awake()
105105
/// <summary>
106106
/// RPC to notify the server that a client has chosen a seat.
107107
/// </summary>
108-
[ServerRpc(RequireOwnership = false)]
109-
public void ChangeSeatServerRpc(ulong clientId, int seatIdx, bool lockedIn)
108+
[Rpc(SendTo.Server, RequireOwnership = false)]
109+
public void ServerChangeSeatRpc(ulong clientId, int seatIdx, bool lockedIn)
110110
{
111111
OnClientChangedSeat?.Invoke(clientId, seatIdx, lockedIn);
112112
}

0 commit comments

Comments
 (0)