39 lines
No EOL
1,021 B
C#
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;
|
|
} |