Esempio n. 1
0
    void StartToWork()
    {
        if (!GameConfig.IsMultiMode)
        {
            //lw:2017.4.6 crash PeCreature.Instance.mainPlayer可能为null
            if (PeCreature.Instance != null && PeCreature.Instance.mainPlayer != null)
            {
                PlayerPackageCmpt pkg = PeCreature.Instance.mainPlayer.packageCmpt as PlayerPackageCmpt;
                if (pkg != null)
                {
                    ItemPackage accessor = pkg.package._playerPak;
                    if (m_CurType == CSConst.etEnhance)
                    {
                        //lw:2017.4.6 crash
                        if (m_Enhance != null && m_Enhance.m_Item != null && m_Enhance.m_Item.protoData != null)
                        {
                            // take out material from player
                            foreach (CSUI_MaterialGrid matGrid in m_MatList)
                            {
                                accessor.Destroy(matGrid.ItemID, matGrid.NeedCnt);
                            }

                            m_Enhance.StartCounter();

                            CSUI_MainWndCtrl.ShowStatusBar(CSUtils.GetNoFormatString(UIMsgBoxInfo.mStartToEnhance.GetString(), m_Enhance.m_Item.protoData.GetName()));

                            // Popoup hints
                            foreach (CSUI_MaterialGrid mg in m_MatList)
                            {
                                Vector3 pos = mg.transform.position;
                                CSUI_MainWndCtrl.CreatePopupHint(pos, transform, new Vector3(10, -2, -8), " - " + mg.NeedCnt, false);
                            }
                        }
                    }
                    else if (m_CurType == CSConst.etRepair)
                    {
                        if (null != m_Repair && m_Repair.m_Item != null && m_Repair.m_Item.protoData != null)
                        {
                            // take out material from player
                            foreach (CSUI_MaterialGrid matGrid in m_MatList)
                            {
                                accessor.Destroy(matGrid.ItemID, matGrid.NeedCnt);
                            }

                            m_Repair.StartCounter();
                            CSUI_MainWndCtrl.ShowStatusBar(CSUtils.GetNoFormatString(UIMsgBoxInfo.mStartToRepair.GetString(), m_Repair.m_Item.protoData.GetName()));
                        }
                    }
                    else if (m_CurType == CSConst.etRecyle)
                    {
                        if (m_Recycle != null && m_Recycle.m_Item != null && m_Recycle.m_Item.protoData != null)
                        {
                            m_Recycle.StartCounter();
                            CSUI_MainWndCtrl.ShowStatusBar(CSUtils.GetNoFormatString(UIMsgBoxInfo.mStartToRecycle.GetString(), m_Recycle.m_Item.protoData.GetName()));
                        }
                    }
                }
            }
        }
        else
        {
            //multimode
            if (m_CurType == CSConst.etEnhance)
            {
                m_Enhance._ColonyObj._Network.EHN_Start();
            }
            else if (m_CurType == CSConst.etRepair)
            {
                m_Repair._ColonyObj._Network.RPA_Start();
            }
            else if (m_CurType == CSConst.etRecyle)
            {
                m_Recycle._ColonyObj._Network.RCY_Start();
            }
        }
    }