예제 #1
0
    /// <summary>
    /// Sets the work room.
    /// </summary>
    /// <param name="workRoom">Work room. : NULL means clear the work room,
    /// note thant it will remeber by brain.</param>
    private void SetWorkRoom(CSCommon workRoom)
    {
        if (m_WorkRoom != workRoom)
        {
            if (m_WorkRoom != null)
            {
                m_WorkRoom.RemoveWorker(this);

                if (workRoom == null)
                {
                    WorkMachine = null;
                }
                else
                {
                    PersonnelSpace ps = workRoom.FindEmptySpace(this);
                    if (ps != null)
                    {
                        ps.m_Person     = this;
                        WorkMachine     = ps.WorkMachine;
                        HospitalMachine = ps.HospitalMachine;
                        TrainerMachine  = ps.TrainerMachine;
                    }
                    workRoom.AddWorker(this);
                }
            }
            else
            {
                PersonnelSpace ps = workRoom.FindEmptySpace(this);
                if (ps != null)
                {
                    ps.m_Person     = this;
                    WorkMachine     = ps.WorkMachine;
                    HospitalMachine = ps.HospitalMachine;
                    TrainerMachine  = ps.TrainerMachine;
                }
                workRoom.AddWorker(this);
            }

            m_WorkRoom = workRoom;

            if (workRoom != null)
            {
                Data.m_WorkRoomID = workRoom.ID;
            }
            else
            {
                Data.m_WorkRoomID = -1;
            }

            if (m_NpcCmpt != null)
            {
                m_NpcCmpt.WorkEntity = m_WorkRoom;
                m_NpcCmpt.Work       = WorkMachine;
                m_NpcCmpt.Cure       = HospitalMachine;
                m_NpcCmpt.Trainner   = TrainerMachine;
            }
        }
    }