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); } }
public void SetData(EggData eggData) { this.eggData = eggData; iconImg.sprite = Resources.Load <Sprite>(GameDefine.UITerrainSpritePath + eggData.ConfigData.icon); countText.text = "X1"; }
//本地模拟玩家数据,初始给玩家5个万能蛋 public void LocalPlayerBorn() { for (int i = 0; i < 5; i++) { EggData newEgg = new EggData(universalEggId); eggs.Add(newEgg); } }
public void FromJson(JSONNode jsnode) { eggs.Clear(); foreach (var eggNode in jsnode["eggs"].Childs) { EggData newEgg = new EggData(); newEgg.FromJson(eggNode); eggs.Add(newEgg); } }
public void OnClickCancel() { if (selectEggData == null) { return; } selectEggData.CancelHatch(); selectEggData = null; currentHatchBuilding.FinishOrCancelHatch(); Refresh(); }
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); }
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(); }
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); }
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; }
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; }
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; }
public void AddEgg(EggData addEggData) { eggs.Add(addEggData); }
public void FinishHatch(EggData finishedEgg) { eggs.Remove(finishedEgg); }
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; } }