server-master/srcs/WingsAPI.Game/Groups/GroupComponent.cs
2026-02-10 18:21:30 +01:00

39 lines
No EOL
1,021 B
C#

using WingsEmu.Game.Characters;
namespace WingsEmu.Game.Groups;
public class GroupComponent : IGroupComponent
{
private PlayerGroup _playerGroup;
public GroupComponent() => _playerGroup = null;
public long GetGroupId() => _playerGroup?.GroupId ?? 0;
public PlayerGroup GetGroup() => _playerGroup;
public void AddMember(IPlayerEntity member) => _playerGroup?.AddMember(member);
public void RemoveMember(IPlayerEntity member) => _playerGroup?.RemoveMember(member);
public void SetGroup(PlayerGroup playerGroup)
{
if (_playerGroup != null)
{
return;
}
_playerGroup = playerGroup;
}
public void RemoveGroup()
{
_playerGroup = null;
}
public bool IsInGroup() => _playerGroup != null;
public bool IsLeaderOfGroup(long characterId) => _playerGroup != null && _playerGroup.OwnerId == characterId;
public bool IsGroupFull() => _playerGroup != null && _playerGroup.Members.Count >= _playerGroup.Slots;
}