Exemplo n.º 1
0
        // To be run on client
        public override void Process(NetMessage msg)
        {
            if (CustomNetworkManager.IsServer)
            {
                return;                                            // Run extra logic for server, handled in ElectricalArc.
            }
            if (MatrixManager.IsInitialized == false)
            {
                return;
            }
            if (PlayerManager.LocalPlayer == null)
            {
                return;
            }

            if (NetworkClient.prefabs.TryGetValue(msg.prefabAssetID, out var prefab) == false)
            {
                Logger.LogError(
                    $"Couldn't spawn {nameof(ElectricalArc)}; client doesn't know about this {nameof(msg.prefabAssetID)}: {msg.prefabAssetID}.",
                    Category.Firearms);
                return;
            }

            var settings = new ElectricalArcSettings(prefab, msg.startObject, msg.endObject,
                                                     msg.startPosition, msg.endPosition, msg.arcCount,
                                                     msg.duration, msg.reachCheck, msg.addRandomness);

            new ElectricalArc().CreateArcs(settings);
        }
Exemplo n.º 2
0
 /// <summary>
 /// Sends a message to all clients, informing them to create an electrical arc with the given settings.
 /// </summary>
 public static NetMessage SendToAll(ElectricalArcSettings arcSettings)
 {
     if (arcSettings.arcEffectPrefab.TryGetComponent <NetworkIdentity>(out var identity) == false)
     {
         Logger.LogError(
             $"No {nameof(NetworkIdentity)} found on {arcSettings.arcEffectPrefab}!",
             Category.Electrical);
         return(default);
Exemplo n.º 3
0
        private void DoArcEffects()
        {
            foreach (var generator in connectedGenerator)
            {
                if (generator.Value.Item2 == false)
                {
                    continue;
                }

                var settings = new ElectricalArcSettings(electricalArc, gameObject, generator.Value.Item1,
                                                         arcOffSet, arcOffSet, 1, 1f, false, false);

                ElectricalArc.ServerCreateNetworkedArcs(settings);
            }
        }