public bool AddMember(IAIGroupable member) { if (InGroup() && !IsGroupLeader) { return(GroupLeader.AddMember(member)); } if (MaxGroupSize <= 0) { return(false); } if (groupMembers.Contains(member)) { return(true); } if (groupMembers.Count + 1 >= MaxGroupSize) { return(false); } groupMembers.Add(member); IsGrouped = true; IsGroupLeader = true; GroupLeader = this; T entity = GetEntity(); Events.Memory.Entity.Set(entity, 6); member.JoinGroup(this, entity); return(true); }
public void LeaveGroup() { if (!InGroup()) { return; } if (IsGroupLeader) { if (groupMembers.Count == 0) { return; } IAIGroupable iAIGroupable = groupMembers[0]; if (iAIGroupable == null) { return; } RemoveMember(iAIGroupable); for (int num = groupMembers.Count - 1; num >= 0; num--) { IAIGroupable iAIGroupable2 = groupMembers[num]; if (iAIGroupable2 != null && iAIGroupable2 != iAIGroupable) { RemoveMember(iAIGroupable2); iAIGroupable.AddMember(iAIGroupable2); } } groupMembers.Clear(); } else if (GroupLeader != null) { GroupLeader.RemoveMember(GetComponent <IAIGroupable>()); } }
public void TestMethod1() { Teacher teacher = new Teacher(); List <string> girls = new List <string> { "女生A", "女生B" }; GroupLeader groupLeader = new GroupLeader(girls); teacher.Commond(groupLeader); //共有2个女生 }