Files
K-C-Multiplayer/Packets/Network/ServerHandshake.cs
2025-12-14 13:09:32 +01:00

79 lines
2.2 KiB
C#

using KCM.Enums;
using KCM.Packets.Lobby;
using Riptide;
using Riptide.Demos.Steam.PlayerHosted;
using Steamworks;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;
namespace KCM.Packets.Network
{
public class ServerHandshake : Packet
{
public override ushort packetId => (int)Enums.Packets.ServerHandshake;
public bool loadingSave { get; set; }
public override void HandlePacketClient()
{
ModalManager.HideModal();
Main.TransitionTo(Enums.MenuState.ServerLobby);
SfxSystem.PlayUiSelect();
Cam.inst.desiredDist = 80f;
Cam.inst.desiredPhi = 45f;
CloudSystem.inst.threshold1 = 0.6f;
CloudSystem.inst.threshold2 = 0.8f;
CloudSystem.inst.BaseFreq = 4.5f;
Weather.inst.SetSeason(Weather.Season.Summer);
KCClient.inst = new KCClient(SteamFriends.GetPersonaName());
Main.helper.Log("Sending client connected. Client ID is: " + clientId);
KCPlayer localPlayer;
if (!Main.kCPlayers.TryGetValue(Main.PlayerSteamID, out localPlayer))
{
localPlayer = new KCPlayer(KCClient.inst.Name, clientId, Main.PlayerSteamID);
Main.kCPlayers.Add(Main.PlayerSteamID, localPlayer);
}
else
{
localPlayer.id = clientId;
localPlayer.name = KCClient.inst.Name;
}
Player.inst.PlayerLandmassOwner.teamId = clientId * 10 + 2;
if (loadingSave && KCServer.IsRunning)
Main.TransitionTo(MenuState.Load);
else if (!loadingSave)
{
Main.TransitionTo(MenuState.NameAndBanner);
}
new KingdomName() { kingdomName = TownNameUI.inst.townName, clientId = clientId }.Send();
new ClientConnected()
{
clientId = clientId,
Name = KCClient.inst.Name,
SteamId = Main.PlayerSteamID
}.Send();
}
public override void HandlePacketServer()
{
//throw new NotImplementedException();
}
}
}