Example #1
0
    public void ResetAll()
    {
        StopAllCoroutines();
        foreach (ModuleMech moduleMech in Mechs)
        {
            moduleMech.PoolRecycle();
        }

        MechCount    = 0;
        HeroCount    = 0;
        SoldierCount = 0;

        ClientPlayer     = null;
        previewMechPlace = PREVIEW_MECH_PLACES_NO_PREVIEW_MECH_NOW;
        Mechs.Clear();
        Heros.Clear();
        Soldiers.Clear();
        MechCount    = 0;
        HeroCount    = 0;
        SoldierCount = 0;
        RemoveMechs.Clear();
        AddPrePassMechQueue.Clear();
        CLIENT_TEMP_ID = -100;
        relatedSlots.Clear();
        if (currentSummonPreviewMechCard)
        {
            currentSummonPreviewMechCard.PoolRecycle();
        }
        if (CurrentSummonPreviewMech)
        {
            CurrentSummonPreviewMech.PoolRecycle();
        }
    }
Example #2
0
    public ModuleMech AddMech_PrePass(CardInfo_Mech mechCardInfo, int mechId, int clientMechTempId)
    {
        if (ClientPlayer == null)
        {
            return(null);
        }
        previewMechPlace = PREVIEW_MECH_PLACES_NO_PREVIEW_MECH_NOW;

        bool isSummonedBeforeByPreview = false;

        if (clientMechTempId != (int)Const.SpecialMechID.ClientTempMechIDNormal)
        {
            foreach (ModuleMech moduleMech in Mechs)
            {
                if (moduleMech.M_ClientTempMechID == clientMechTempId)                               //匹配
                {
                    moduleMech.M_MechID           = mechId;                                          //赋予正常ID
                    moduleMech.M_ClientTempMechID = (int)Const.SpecialMechID.ClientTempMechIDNormal; //恢复普通
                    isSummonedBeforeByPreview     = true;
                    break;
                }
            }
        }

        if (!isSummonedBeforeByPreview)
        {
            ModuleMech mech = GameObjectPoolManager.Instance.PoolDict[GameObjectPoolManager.PrefabNames.ModuleMech].AllocateGameObject <ModuleMech>(transform);
            mech.transform.position = GameObjectPoolManager.Instance.PoolDict[GameObjectPoolManager.PrefabNames.ModuleMech].transform.position;
            mech.Initiate(mechCardInfo, ClientPlayer);
            mech.transform.Rotate(Vector3.up, 180);
            mech.M_MechID = mechId;
            AddPrePassMechQueue.Enqueue(mech);
            MechCount++;
            if (!mechCardInfo.MechInfo.IsSoldier)
            {
                HeroCount++;
            }
            else
            {
                SoldierCount++;
            }

            return(mech);
        }

        return(null);
    }