using FFXIVClassic.Common; using FFXIVClassic_Map_Server.dataobjects; using FFXIVClassic_Map_Server.packets.send.group; using FFXIVClassic_Map_Server.packets.send.groups; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FFXIVClassic_Map_Server.actors.group { class MonsterParty : Group { private List monsterMembers = new List(); public MonsterParty(ulong groupIndex, uint[] initialMonsterMembers) : base(groupIndex) { for (int i = 0; i < initialMonsterMembers.Length; i++) monsterMembers.Add(initialMonsterMembers[i]); } public void AddMember(uint memberId) { monsterMembers.Add(memberId); SendGroupPacketsAll(monsterMembers); } public void RemoveMember(uint memberId) { monsterMembers.Remove(memberId); SendGroupPacketsAll(monsterMembers); } public override List BuildMemberList(uint id) { List groupMembers = new List(); groupMembers.Add(new GroupMember(id, -1, 0, false, true, Server.GetWorldManager().GetActorInWorld(id).customDisplayName)); foreach (uint charaId in monsterMembers) { if (charaId != id) groupMembers.Add(new GroupMember(charaId, -1, 0, false, true, Server.GetWorldManager().GetActorInWorld(charaId).customDisplayName)); } return groupMembers; } public override void SendInitWorkValues(Session session) { SynchGroupWorkValuesPacket groupWork = new SynchGroupWorkValuesPacket(groupIndex); groupWork.setTarget("/_init"); SubPacket test = groupWork.buildPacket(session.id); session.QueuePacket(test); } public override uint GetTypeId() { return Group.MonsterPartyGroup; } } }