public static void ShootProjectileServer(RailgunFireData fireData) { RailgunProjectileData projectileData; bool registered = railgunDataDict.TryGetValue(fireData.ShooterID, out projectileData); if (!registered) { return; } var projectile = new ArmorPiercingProjectileSimulation(fireData, projectileData); AddProjectile(projectile); RailgunMessage.SendToClients(fireData); }
private static void SimulateProjectiles() { //projectile simulation for (int i = liveProjectiles.Count - 1; i >= 0; i--) { var projectile = liveProjectiles[i]; projectile.Update(); if (projectile.Killed) { liveProjectiles.RemoveAt(i); } var tracerData = projectile.GetTracerData(); foreach (var tracer in tracerData) { RailgunMessage.SendToClients(tracer); } } }