Пример #1
0
    void Refresh()
    {
        GameObjectPool.GiveBackToPool(itemRoot);
        foreach (var eggData in PlayerDataBase.instance.eggDataBase.eggs)
        {
            if (eggData.hatchId >= 0)
            {
                if (eggData.hatchId == currentHatchId)
                {
                    selectEggData = eggData;
                }
                continue;
            }

            UIHatchEggItem eggItem = itemPool.Pop().GetComponent <UIHatchEggItem>();
            eggItem.transform.SetParent(itemRoot, false);
            eggItem.SetData(eggData);
        }

        if (selectEggData == null)
        {
            remainTimeText.text = "选择一个蛋来孵化";
            selectEggImg.gameObject.SetActive(false);
        }
        else
        {
            selectEggImg.gameObject.SetActive(true);
            selectEggImg.sprite = Resources.Load <Sprite>(GameDefine.UITerrainSpritePath + selectEggData.ConfigData.icon);
        }
    }
Пример #2
0
    public void SetData(EggData eggData)
    {
        this.eggData = eggData;

        iconImg.sprite = Resources.Load <Sprite>(GameDefine.UITerrainSpritePath + eggData.ConfigData.icon);
        countText.text = "X1";
    }
Пример #3
0
 //本地模拟玩家数据,初始给玩家5个万能蛋
 public void LocalPlayerBorn()
 {
     for (int i = 0; i < 5; i++)
     {
         EggData newEgg = new EggData(universalEggId);
         eggs.Add(newEgg);
     }
 }
Пример #4
0
 public void FromJson(JSONNode jsnode)
 {
     eggs.Clear();
     foreach (var eggNode in jsnode["eggs"].Childs)
     {
         EggData newEgg = new EggData();
         newEgg.FromJson(eggNode);
         eggs.Add(newEgg);
     }
 }
Пример #5
0
    public void OnClickCancel()
    {
        if (selectEggData == null)
        {
            return;
        }

        selectEggData.CancelHatch();
        selectEggData = null;
        currentHatchBuilding.FinishOrCancelHatch();
        Refresh();
    }
Пример #6
0
    public void StartHatch(EggData hatchEggData)
    {
        if (hatchEggData == null)
        {
            return;
        }
        this.hatchEggData = hatchEggData;
        GameObject newEggGo = PoolManager.Pools["Shuijing"].Spawn(hatchEggData.ConfigData.prefab).gameObject;

        newEggGo.transform.SetParent(eggPos, false);
        Egg newEgg = newEggGo.GetComponent <Egg>();

        newEgg.eggData = hatchEggData;
        newEgg.hatchEffect.SetActive(true);
    }
Пример #7
0
    public void OnClickHatch()
    {
        if (selectEggData == null)
        {
            return;
        }
        if (selectEggData.remainTime > 0)
        {
            return;
        }
        PlayerDataBase.instance.eggDataBase.FinishHatch(selectEggData);
        currentHatchBuilding.FinishOrCancelHatch();
        Messenger <int> .Broadcast(UIEvent.UIEvent_HatchEgg, currentHatchId);

        selectEggData = null;
        Refresh();
    }
Пример #8
0
 public bool CheckHatchEgg(EggData checkEggData)
 {
     EggData.ElementType eggElementType = (EggData.ElementType)checkEggData.ConfigData.elementType;
     if (eggElementType == EggData.ElementType.Universal)
     {
         return(true);
     }
     else if (eggElementType == EggData.ElementType.Fire && hatchType == HatchType.Fire)
     {
         return(true);
     }
     else if (eggElementType == EggData.ElementType.Wood && hatchType == HatchType.Wood)
     {
         return(true);
     }
     return(false);
 }
Пример #9
0
 public AllData(RelayCannonsData cannons, FansData fans, CrafterData crafters, ItemObjectsData items, MinersData miners, OreData ores, InventoryData invents, UnPackagerData unPacks,
                PackagerData packs, EggData eggs, SplitterData splits, PumpsData pumps, ZapTowerData zaps, RocketData rock)
 {
     cannon  = cannons;
     fan     = fans;
     crafter = crafters;
     item    = items;
     miner   = miners;
     ore     = ores;
     invent  = invents;
     unPack  = unPacks;
     pack    = packs;
     egg     = eggs;
     split   = splits;
     pump    = pumps;
     zap     = zaps;
     roc     = rock;
 }
Пример #10
0
 public void FinishOrCancelHatch()
 {
     if (hatchEggData == null)
     {
         return;
     }
     for (int i = 0; i < eggPos.childCount; i++)
     {
         Transform child = eggPos.GetChild(i);
         Egg       egg   = child.GetComponent <Egg>();
         if (egg == null)
         {
             continue;
         }
         egg.hatchEffect.SetActive(false);
         PoolManager.Pools["Shuijing"].Despawn(child);
     }
     hatchEggData = null;
 }
Пример #11
0
    public void OnSelectItem(UIHatchEggItem selectItem)
    {
        if (selectEggData != null)
        {
            return;
        }

        if (currentHatchBuilding == null)
        {
            return;
        }
        if (!currentHatchBuilding.CheckHatchEgg(selectItem.eggData))
        {
            return;
        }

        selectEggData = selectItem.eggData;
        selectEggData.StartHatch(currentHatchId);
        currentHatchBuilding.StartHatch(selectEggData);
        Refresh();
        finished        = false;
        cacheRemainTime = -1;
    }
Пример #12
0
 public void AddEgg(EggData addEggData)
 {
     eggs.Add(addEggData);
 }
Пример #13
0
 public void FinishHatch(EggData finishedEgg)
 {
     eggs.Remove(finishedEgg);
 }
Пример #14
0
    public void GenerateEggs()
    {
        int generateMaxCount = GetTerrainCommon(TerrainCommonKey.GenerateEggsCountPerDay);
        //int generateCount = 0;

        List <PATileTerrain.PATile> allTiles = new List <PATileTerrain.PATile>();

        foreach (var crystal in tileTerrain.settings.crystals)
        {
            foreach (var tile in crystal.shuijing.affectTiles.Values)
            {
                allTiles.Add(tile);
            }
        }

        int tilesCount = allTiles.Count;

        if (tilesCount == 0)
        {
            return;
        }
        //Debug.Log("tilesCount " + tilesCount);
        int beginIndex = RandomManager.instance.Range(0, tilesCount);
        int step       = RandomManager.instance.Range(0, tilesCount);
        //Debug.Log("step " + step);
        int index = beginIndex;

        for (int i = 0; i < generateMaxCount; i++)
        {
            index = index % tilesCount;
            //Debug.Log("index " + index);
            PATileTerrain.PATile tile = allTiles[index];
            int eggConfigId           = -1;
            if (tile.IsFireTile())
            {
                eggConfigId = FireEggConfigId;
            }
            else if (tile.IsWoodTile())
            {
                eggConfigId = WoodEggConfigId;
            }
            else
            {
                eggConfigId = UniversalEggConfigId;
            }

            EggData    newEggData = new EggData(eggConfigId);
            GameObject newEggGo   = PoolManager.Pools["Shuijing"].Spawn(newEggData.ConfigData.prefab).gameObject;
            Egg        newEgg     = newEggGo.GetComponent <Egg>();
            newEgg.eggData = newEggData;
            PATileTerrainChunk chunk = tileTerrain.GetChunk(tile.chunkId);
            newEggGo.transform.SetParent(chunk.settings.buildingsRoot.transform);
            newEggGo.transform.position = tile.WorldPos(tileTerrain.transform);

            if (tile.affectShuijing != null)
            {
                tile.affectShuijing.eggs.Add(newEgg);
            }

            index += step;
        }
    }