mirror of
https://github.com/sebastian-heinz/Arrowgene.DragonsDogmaOnline
synced 2026-08-03 11:12:41 -04:00
68 lines
2.3 KiB
C#
68 lines
2.3 KiB
C#
using Arrowgene.Ddon.Database.Model;
|
|
using Arrowgene.Ddon.GameServer.GatheringItems;
|
|
using Arrowgene.Ddon.GameServer.Party;
|
|
using Arrowgene.Ddon.GameServer.Quests;
|
|
using Arrowgene.Ddon.GameServer.Shop;
|
|
using Arrowgene.Ddon.Server.Network;
|
|
using Arrowgene.Ddon.Shared.Entity.PacketStructure;
|
|
using Arrowgene.Ddon.Shared.Model;
|
|
using System;
|
|
using Arrowgene.Networking.SAEAServer;
|
|
|
|
namespace Arrowgene.Ddon.GameServer
|
|
{
|
|
public class GameClient : Client
|
|
{
|
|
public GameClient(ClientHandle clientHandle, PacketFactory packetFactory, DdonGameServer server) : base(clientHandle, packetFactory)
|
|
{
|
|
UpdateIdentity();
|
|
InstanceGatheringItemManager = new InstanceGatheringItemManager(this, server);
|
|
InstanceDropItemManager = new(this, server);
|
|
InstanceShopManager = new InstanceShopManager(server.ShopManager);
|
|
GameMode = GameMode.Normal;
|
|
}
|
|
|
|
public void UpdateIdentity()
|
|
{
|
|
string newIdentity = $"[GameClient#{Id}@{ClientHandle.Identity}]";
|
|
if (Account != null)
|
|
{
|
|
newIdentity += $"[Acc:({Account.Id}){Account.NormalName}]";
|
|
}
|
|
|
|
if (Character != null)
|
|
{
|
|
newIdentity += $"[Cha:({Character.CharacterId}){Character.FirstName} {Character.LastName}]";
|
|
}
|
|
|
|
Identity = newIdentity;
|
|
}
|
|
|
|
public Account Account { get; set; }
|
|
|
|
public Character Character { get; set; }
|
|
|
|
public PartyGroup Party { get; set; }
|
|
public InstanceShopManager InstanceShopManager { get; }
|
|
public InstanceGatheringItemManager InstanceGatheringItemManager { get; }
|
|
public InstanceDropItemManager InstanceDropItemManager { get; }
|
|
|
|
public GameMode GameMode { get; set; }
|
|
|
|
public QuestStateManager QuestState { get
|
|
{
|
|
return ((PlayerPartyMember)Party?.GetPartyMemberByCharacter(Character))?.QuestState;
|
|
}
|
|
}
|
|
|
|
public bool IsPartyLeader()
|
|
{
|
|
return Party.Leader?.Client == this;
|
|
}
|
|
|
|
// TODO: Place somewhere else more sensible
|
|
public uint LastWarpPointId { get; set; }
|
|
public DateTime LastWarpDateTime { get; set; }
|
|
public S2CLobbyLobbyDataMsgNotice LastLobbyDataMsg { get; set; }
|
|
}
|
|
}
|