Ejemplo n.º 1
0
    public void OnCheckFinish()
    {
        Data.m_CurTime = -1;
        Data.m_Time    = -1;
        CSMain.Instance.RemoveCounter(m_Counter);
//		StopCounter();
        if (GameConfig.IsMultiMode)
        {
            isNpcReady = false;
            return;
        }
        PeEntity           checkNpc = allPatients[0];
        List <CSTreatment> csts     = new List <CSTreatment>();

        System.Random rand = new System.Random();
        if (rand.NextDouble() > DEFAULT_CHECK_CHANGCE + m_Workers[0].GetDiagnoseChanceSkill)
        {
            csts.Add(CSTreatment.GetRandomTreatment(checkNpc));
        }
        else
        {
            csts = CSTreatment.CreateTreatment(checkNpc);
        }
        //--to do:
        //生成病历
        //更改npc状态  eg.diagnosing,treating, rest

        m_MgCreator.RemoveNpcTreatment(checkNpc.Id);
        if (csts != null && csts.Count > 0)
        {
            m_MgCreator.AddTreatment(csts);
            checkNpc.GetCmpt <NpcCmpt>().MedicalState = ENpcMedicalState.SearchTreat;
        }
        else
        {
            checkNpc.GetCmpt <NpcCmpt>().MedicalState = ENpcMedicalState.Cure;
        }

        allPatients.RemoveAt(0);
        Data.npcIds.RemoveAt(0);
        isNpcReady = false;
        if (allPatients.Count >= 1)
        {
            SetPatientIcon(m_Creator.GetNpc(allPatients[0].Id));
            allPatients[0].GetCmpt <NpcCmpt>().MedicalState = ENpcMedicalState.SearchDiagnos;
        }
        else
        {
            SetPatientIcon(null);
        }

        RefreshTreatment();
    }