// Token: 0x06001E6C RID: 7788 RVA: 0x0008F9C8 File Offset: 0x0008DBC8 private void FireProjectileServer(FireProjectileInfo fireProjectileInfo, NetworkConnection clientAuthorityOwner = null, ushort predictionId = 0, double fastForwardTime = 0.0) { GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(fireProjectileInfo.projectilePrefab, fireProjectileInfo.position, fireProjectileInfo.rotation); ProjectileController component = gameObject.GetComponent <ProjectileController>(); component.NetworkpredictionId = predictionId; ProjectileManager.InitializeProjectile(component, fireProjectileInfo); if (clientAuthorityOwner != null) { NetworkServer.SpawnWithClientAuthority(gameObject, clientAuthorityOwner); return; } NetworkServer.Spawn(gameObject); }
// Token: 0x06001E6A RID: 7786 RVA: 0x0008F6F8 File Offset: 0x0008D8F8 private void FireProjectileClient(FireProjectileInfo fireProjectileInfo, NetworkClient client) { int num = this.FindProjectilePrefabIndex(fireProjectileInfo.projectilePrefab); if (num == -1) { Debug.LogErrorFormat(fireProjectileInfo.projectilePrefab, "Prefab {0} is not a registered projectile prefab.", new object[] { fireProjectileInfo.projectilePrefab }); return; } bool allowPrediction = ProjectileManager.projectilePrefabProjectileControllers[num].allowPrediction; ushort predictionId = 0; if (allowPrediction) { ProjectileController component = UnityEngine.Object.Instantiate <GameObject>(fireProjectileInfo.projectilePrefab, fireProjectileInfo.position, fireProjectileInfo.rotation).GetComponent <ProjectileController>(); ProjectileManager.InitializeProjectile(component, fireProjectileInfo); this.predictionManager.RegisterPrediction(component); predictionId = component.predictionId; } this.fireMsg.sendTime = (double)Run.instance.time; this.fireMsg.prefabIndex = (byte)num; this.fireMsg.position = fireProjectileInfo.position; this.fireMsg.rotation = fireProjectileInfo.rotation; this.fireMsg.owner = fireProjectileInfo.owner; this.fireMsg.predictionId = predictionId; this.fireMsg.damage = fireProjectileInfo.damage; this.fireMsg.force = fireProjectileInfo.force; this.fireMsg.crit = fireProjectileInfo.crit; this.fireMsg.damageColorIndex = fireProjectileInfo.damageColorIndex; this.fireMsg.speedOverride = fireProjectileInfo.speedOverride; this.fireMsg.fuseOverride = fireProjectileInfo.fuseOverride; this.fireMsg.target = HurtBoxReference.FromRootObject(fireProjectileInfo.target); NetworkWriter networkWriter = new NetworkWriter(); networkWriter.StartMessage(49); networkWriter.Write(this.fireMsg); networkWriter.FinishMessage(); client.SendWriter(networkWriter, 0); }