Exemplo n.º 1
0
    public override void CreateData()
    {
        CSDefaultData ddata = null;
        bool          isNew;

        if (GameConfig.IsMultiMode)
        {
            isNew = MultiColonyManager.Instance.AssignData(ID, CSConst.dtTent, ref ddata, _ColonyObj);
        }
        else
        {
            isNew = m_Creator.m_DataInst.AssignData(ID, CSConst.dtTent, ref ddata);
        }
        m_Data = ddata as CSTentData;

        if (isNew)
        {
            Data.m_Name       = CSUtils.GetEntityName(m_Type);
            Data.m_Durability = Info.m_Durability;
            for (int i = 0; i < allSickbeds.Length; i++)
            {
                allSickbeds[i].tentBuilding = this;
                if (pePatient != null)
                {
                    allSickbeds[i].bedLay = pePatient.Lays[i];
                }
                if (resultTrans != null)
                {
                    allSickbeds[i].bedTrans = resultTrans[i];
                }
            }
        }
        else
        {
            StartRepairCounter(Data.m_CurRepairTime, Data.m_RepairTime, Data.m_RepairValue);
            StartDeleteCounter(Data.m_CurDeleteTime, Data.m_DeleteTime);
            //--to do
            if (Data.npcIds.Count > 0)
            {
                foreach (int id in Data.npcIds)
                {
                    PeEntity npc = EntityMgr.Instance.Get(id);
                    if (npc != null)
                    {
                        allPatients.Add(npc);
                    }
                }
            }

            for (int i = 0; i < CSMedicalTentConst.BED_AMOUNT_MAX; i++)
            {
                Sickbed sb = allSickbeds[i];
                if (sb.npcId >= 0)
                {
                    sb.npc = EntityMgr.Instance.Get(sb.npcId);
                }
                else
                {
                    sb.npc = null;
                }
                sb.StartCounterFromRecord();
                sb.tentBuilding = this;
                if (pePatient != null)
                {
                    sb.bedLay = pePatient.Lays[i];
                }
                if (resultTrans != null)
                {
                    sb.bedTrans = resultTrans[i];
                }
            }
        }
    }