コード例 #1
0
    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);
    }
コード例 #2
0
 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>());
     }
 }
コード例 #3
0
        public void TestMethod1()
        {
            Teacher       teacher = new Teacher();
            List <string> girls   = new List <string> {
                "女生A", "女生B"
            };
            GroupLeader groupLeader = new GroupLeader(girls);

            teacher.Commond(groupLeader);
            //共有2个女生
        }