private void buildBuilding(BUILDINGS buildingId, uint i, uint j) { BuildingsManager buildingsMan = BuildingsManager.GetInstance(); Building building = buildingsMan.getBuilding(buildingId); buildingsMan.build(buildingId, i, j); WorldTerrain worldTerrain = WorldTerrain.GetInstance(); worldTerrain.createBuilding(i, j, building.getVerticalTiles(), building.getHorizontalTiles()); if (buildingId == BUILDINGS.PLANTA) { Building_Trill trill = (Building_Trill)buildingsMan.getBuilding(BUILDINGS.TRILL); Building_Silo silo = (Building_Silo)buildingsMan.getBuilding(BUILDINGS.SILO); Building_Era era = (Building_Era)buildingsMan.getBuilding(BUILDINGS.ERA); trill.stopProduction(); silo.stopProduction(); era.stopProduction(); uint rice = trill.getAllTheRice(); rice += silo.getAllTheRice(); rice += era.getAllTheRice(); ((Building_Planta)building).sendRice(rice); destroyBuilding(BUILDINGS.TRILL); destroyBuilding(BUILDINGS.SILO); destroyBuilding(BUILDINGS.ERA); } }
public void actionClicked() { if (!b_haveAllObjectsRequired) { openBuyMenu(); } else if (!b_areEnoughWorkers) { openHireMenu(); } else { const int ID_SEND_HARVEST_TRAD = 17; const int ID_SEND_HARVEST_MODERN = 29; if (m_actions[m_currentAction].id != ID_SEND_HARVEST_MODERN && m_actions[m_currentAction].id != ID_SEND_HARVEST_TRAD) { m_actions[m_currentAction].doMenuAction(); } else { int chunk = ((ChunkAction)m_actions[m_currentAction]).chunk; uint riceInChunk = WorldTerrain.GetInstance().getRiceChunkProduction(chunk); if (!BuildingsManager.GetInstance().isBuilded(BUILDINGS.PLANTA)) { Building_Trill trill = (Building_Trill)BuildingsManager.GetInstance().getBuilding(BUILDINGS.TRILL); uint currentFreeCapacity = trill.getCurrentFreeCapacity(); if (currentFreeCapacity >= riceInChunk) { m_actions[m_currentAction].doMenuAction(); } else { //uint possibleLost = riceInChunk - currentFreeCapacity; GameObject panelTemplate = Resources.Load("Prefabs/RiceOverflowLostFocusLayer") as GameObject; GameObject panelInstance = Instantiate(panelTemplate); GameObject panel = panelInstance.transform.FindChild("RiceOverflowPanel").gameObject; panel.GetComponent <RiceOverflowPanelBehaviour>().init((MenuAction)m_actions[m_currentAction]); } } else { Building_Planta planta = (Building_Planta)BuildingsManager.GetInstance().getBuilding(BUILDINGS.PLANTA); uint currentFreeCapacity = planta.getCurrentFreeCapacity(); if (currentFreeCapacity >= riceInChunk) { m_actions[m_currentAction].doMenuAction(); } else { //uint possibleLost = riceInChunk - currentFreeCapacity; GameObject panelTemplate = Resources.Load("Prefabs/RiceOverflowLostFocusLayer") as GameObject; GameObject panelInstance = Instantiate(panelTemplate); GameObject panel = panelInstance.transform.FindChild("RiceOverflowPanel").gameObject; panel.GetComponent <RiceOverflowPanelBehaviour>().init((MenuAction)m_actions[m_currentAction]); } } } kill(); } }
private void ActSendRiceToEra() { Building_Trill trill = (Building_Trill)BuildingsManager.GetInstance().getBuilding(BUILDINGS.TRILL); Building_Era era = (Building_Era)BuildingsManager.GetInstance().getBuilding(BUILDINGS.ERA); //uint ricePrepared = trill.getAndEraseRicePrepared (); uint riceToSend = Math.Min(era.getCurrentFreeCapacity(), trill.getRicePrepared()); trill.takeRicePrepared(riceToSend); era.sendRice(riceToSend); }
private bool loadBuildings() { string file_path = "json/buildings"; TextAsset file = Resources.Load(file_path, typeof(TextAsset)) as TextAsset; if (file != null) { JSONNode N = JSON.Parse(file.text); foreach (BUILDINGS buildingID in Enum.GetValues(typeof(BUILDINGS))) { string buildingStr = buildingID.ToString(); switch (buildingID) { case BUILDINGS.CASA: _buildings [buildingID] = new Building_Home(N [buildingStr], buildingID); break; case BUILDINGS.ESTABLO: _buildings [buildingID] = new Building_Stable(N [buildingStr], buildingID); break; //case BUILDINGS.GARAJE: // _buildings [buildingID] = new Building_Garage(N [buildingStr], buildingID); // break; case BUILDINGS.PLANTER: _buildings [buildingID] = new Building_Planter(N [buildingStr], buildingID); break; case BUILDINGS.TRILL: _buildings [buildingID] = new Building_Trill(N [buildingStr], buildingID); break; case BUILDINGS.ERA: _buildings [buildingID] = new Building_Era(N [buildingStr], buildingID); break; case BUILDINGS.SILO: _buildings [buildingID] = new Building_Silo(N [buildingStr], buildingID); break; case BUILDINGS.PLANTA: _buildings [buildingID] = new Building_Planta(N [buildingStr], buildingID); break; default: _buildings [buildingID] = new Building(N [buildingStr], buildingID); break; } _isBuilded [buildingID] = false; } return(true); } Debug.Log(file_path + " not loaded"); return(false); }
public void sendRiceToDry() { uint riceProduced = getRiceProduced(); UserDataManager.GetInstance().addRiceProduced(riceProduced); UserDataManager.GetInstance().addRiceLost(getRiceLost()); if (!BuildingsManager.GetInstance().isBuilded(BUILDINGS.PLANTA)) { Building_Trill trill = (Building_Trill)BuildingsManager.GetInstance().getBuilding(BUILDINGS.TRILL); uint riceOverFlow = (uint)Math.Max((int)(riceProduced - trill.getCurrentFreeCapacity()), 0); UserDataManager.GetInstance().addRiceLost(riceOverFlow); trill.sendRice(riceProduced); } else { Building_Planta planta = (Building_Planta)BuildingsManager.GetInstance().getBuilding(BUILDINGS.PLANTA); uint riceOverFlow = Math.Max(riceProduced - planta.getCurrentFreeCapacity(), 0); UserDataManager.GetInstance().addRiceLost(riceOverFlow); planta.sendRice(riceProduced); } _harvestImg.SetActive(false); }
private List <MenuAction> getBTrillActions() { List <MenuAction> actions = new List <MenuAction> (); Building_Trill building = (Building_Trill)BuildingsManager.GetInstance().getBuilding(BUILDINGS.TRILL); Building_Era buildingEra = (Building_Era)BuildingsManager.GetInstance().getBuilding(BUILDINGS.ERA); MenuAction actSendRice = new MenuAction(); if (buildingEra.getCurrentFreeCapacity() == 0) { actSendRice.title = Dictionary.getString("ERA_FILLED"); } else { actSendRice.title = Dictionary.getString("SEND_RICE_TO_ERA"); } uint riceToSend = Math.Min(buildingEra.getCurrentFreeCapacity(), building.getRicePrepared()); actSendRice.info = Dictionary.getString("SEND") + " " + riceToSend + " " + Dictionary.getString("KG_RICE_TERRAIN"); actSendRice.enabled = (riceToSend > 0); actSendRice.doMenuAction = new DoMenuAction(ActSendRiceToEra); actions.Add(actSendRice); return(actions); }
public void save(BuildingManagerData buildingManagerData) { foreach (KeyValuePair <BUILDINGS, bool> builded in IsBuilded) { if (builded.Value) { BuildingData buildingData = new BuildingData(); buildingData.ID = builded.Key; switch (builded.Key) { case BUILDINGS.CASA: { Building_Home b = (Building_Home)getBuilding(builded.Key); buildingData.i = b.getRow(); buildingData.j = b.getCol(); buildingData.Level = b.getCurrentLevel(); } break; case BUILDINGS.ESTABLO: { Building_Stable b = (Building_Stable)getBuilding(builded.Key); buildingData.i = b.getRow(); buildingData.j = b.getCol(); buildingData.Level = b.getCurrentLevel(); } break; //case BUILDINGS.GARAJE: { // Building_Garage b = (Building_Garage)getBuilding(builded.Key); // buildingData.i = b.getRow(); // buildingData.j = b.getCol(); // buildingData.Level = b.getCurrentLevel(); // } // break; case BUILDINGS.PLANTER: { Building_Planter b = (Building_Planter)getBuilding(builded.Key); buildingData.i = b.getRow(); buildingData.j = b.getCol(); buildingData.Level = b.getCurrentLevel(); buildingData.SpecialSlot1 = b.estaSembrat() ? 1 : 0; buildingData.SpecialSlot2 = (int)b.DiesSembrat; buildingData.SpecialSlot3 = (int)b.Plantes; } break; case BUILDINGS.TRILL: { Building_Trill b = (Building_Trill)getBuilding(builded.Key); buildingData.i = b.getRow(); buildingData.j = b.getCol(); buildingData.Level = b.getCurrentLevel(); buildingData.SpecialSlot1 = (int)b.getRiceUnprepared(); buildingData.SpecialSlot2 = (int)b.getRicePrepared(); } break; case BUILDINGS.ERA: { Building_Era b = (Building_Era)getBuilding(builded.Key); buildingData.i = b.getRow(); buildingData.j = b.getCol(); buildingData.Level = b.getCurrentLevel(); buildingData.SpecialSlot1 = (int)b.getRiceUnprepared(); buildingData.SpecialSlot2 = (int)b.getRicePrepared(); } break; case BUILDINGS.SILO: { Building_Silo b = (Building_Silo)getBuilding(builded.Key); buildingData.i = b.getRow(); buildingData.j = b.getCol(); buildingData.Level = b.getCurrentLevel(); buildingData.SpecialSlot1 = (int)b.getAllTheRice(); } break; case BUILDINGS.PLANTA: { Building_Planta b = (Building_Planta)getBuilding(builded.Key); buildingData.i = b.getRow(); buildingData.j = b.getCol(); buildingData.Level = b.getCurrentLevel(); buildingData.SpecialSlot1 = (int)b.getRiceUnprepared(); } break; } buildingManagerData.BuildingsBuilded.Add(buildingData); } } }