/// <summary> /// Istanzia la Meraviglia nella Mappa /// </summary> /// <param name="_meraviglia"></param> void SetupMeraviglia(BuildingData _meraviglia) { BuildingView currentBuildView; foreach (var item in gridController.Cells) { if (!OneMeravigliaInGioco) { if (item.Type == CellDoomstock.CellType.Meraviglia) { currentBuildView = buildingManager.CreateBuild(Meraviglia); currentBuildView.transform.position = new Vector3(item.WorldPosition.x - (CellSize / 2) + 1.05f, item.WorldPosition.y - (CellSize / 2) - 0.26f, item.WorldPosition.z + 1.2f); OneMeravigliaInGioco = true; MeravigliasInScene = currentBuildView; item.SetStatus(CellDoomstock.CellStatus.Filled, currentBuildView.Data); } } if (item.Type == CellDoomstock.CellType.Meraviglia) { item.Cost = 100; } } }
public BuildingView SaveAsync(BuildingView cls) { try { var headers = Request.Headers?.ToList(); if (headers == null || headers.Count <= 0) { return(null); } var guid = Request.Headers.GetValues("cusGuid").FirstOrDefault(); if (string.IsNullOrEmpty(guid)) { return(null); } var cusGuid = Guid.Parse(guid); if (!Assistence.CheckCustomer(cusGuid)) { return(null); } db.BuildingViews.AddOrUpdate(cls); db.SaveChanges(); Assistence.SaveLog(cusGuid, cls.Guid, EnTemp.BuildingView); return(cls); } catch (Exception ex) { WebErrorLog.ErrorInstence.StartErrorLog(ex); return(null); } }
void OnBuildingDebrisRemove(BuildingView _buildingView) { if (BuildingsInScene.Contains(_buildingView)) { BuildingsInScene.Remove(_buildingView); } }
public BuildingController(BuildingModel model, BuildingView view) { this.model = model; this.view = view; model.OnNumberOfFloorsChanged += OnNumberOfFloorChanged; }
public void CheckCameraState(CameraStateSignal signal) // if camera is in RTS mode I subscribe to the cursor { if (signal.state != CameraState.RTS) { _selection = null; Destroy(_buldngCursor); return; } }
/// <summary> /// Controlla la lista di tutti gli edifici in scena.Se la vita e' 0, distrugge gli edifici /// </summary> /// <param name="_buildingView"></param> public void DestroyBuildingsInScene(BuildingView _buildingView) { foreach (BuildingView building in GetAllBuildingInScene()) { if (_buildingView.Data.BuildingLife <= 0) { Destroy(_buildingView.gameObject); } } }
/// <summary> /// Restituisce la view del data passato in parametro. /// </summary> public BuildingView CreateBuild(BuildingData _buildingDataPrefab) { BuildingData NewIstanceBuildingData; NewIstanceBuildingData = Instantiate(_buildingDataPrefab); BuildingView NewIstanceView = Instantiate(NewIstanceBuildingData.BuildPrefab); NewIstanceView.Init(NewIstanceBuildingData); NewIstanceView.Data.Population = new List <PopulationData>(); return(NewIstanceView); }
public void PlaceChoosenBuilding() { BuildingView building = BuildingViews[_chosenBuldingId]; for (int i = (int)building.PointOnPlane.x; i < building.PointOnPlane.x + building.scriptObj.Size.x; i++) { for (int j = (int)building.PointOnPlane.y; j < building.PointOnPlane.y + building.scriptObj.Size.y; j++) { _planeManager.Tiles[i + _settingsManager.PlaneOffset][j + _settingsManager.PlaneOffset].IsFilled = true; } } }
public StructureTile CreateStructureFromType(StructureType type, BaseTileData data) { StructureTile newTile = null; StructureBinding structureBinding = BuildingManager.Instance.StructuresTemplates.GetStructureBindingFromType(type); if (structureBinding != null) { switch (type) { case StructureType.PowerPlant: newTile = new PowerPlantTile(); break; case StructureType.Sawmill: newTile = new SawmillTile(); break; case StructureType.PumpingStation: newTile = new PumpingStationTile(); WaterClusterManager.Instance.RegisterPumpingStation(data); break; case StructureType.Village: newTile = new VillageTile(); break; case StructureType.Mine: newTile = new MineTile(); break; case StructureType.Relay: newTile = new RelayTile(); break; case StructureType.MainRelay: newTile = new MainRelayTile(); break; default: throw new MissingStructureTypeDefinitionException(); } data.structureTile = newTile; BuildingView building = Instantiate(structureBinding.building, data.worldPosition, Quaternion.identity, transform); building.dataTile = newTile; newTile._building = building; newTile.GridPosition = data.GridPosition; ResourcesManager.Instance.RegisterStructure(newTile); RelayManager.Instance.RegisterStructure(data); } return(newTile); }
/// <summary> /// Istanzia una nuovo oggetto Building /// </summary> public override void DeployBuilding(BuildingData building) { base.DeployBuilding(building); if (CheckResources(building) == true) { BuildingView newInstanceOfView = GameManager.I.buildingManager.CreateBuild(building); newInstanceOfView.Data.PlayerOwner = this; CurrentBuildView = newInstanceOfView; CurrentBuildView.transform.localScale = new Vector3(GameManager.I.CellSize, GameManager.I.CellSize, GameManager.I.CellSize); CurrentBuildView.transform.position = new Vector3(this.transform.position.x, this.transform.position.y - (GameManager.I.CellSize / 2) - 0.5f, this.transform.position.z + 0.1f); GameManager.I.gridController.Cells[XpositionOnGrid, YpositionOnGrid].SetStatus(CellDoomstock.CellStatus.Filled, newInstanceOfView.Data); GameManager.I.uiManager.SetResourcesTextColor(); BuildingsInScene.Add(newInstanceOfView); } CurrentBuildView = null; }
public void AddBuilding(BuildingView building) { if (BuildingPositions == null) { return; } if (Buildings == null) { Buildings = new List <BuildingView>(); } if (!HasBuildSpace) { return; } Buildings.Add(building); building.ConnectedPlanet = this; building.SetPosition(BuildingPositions[Buildings.IndexOf(building)]); }
public void SelectBuilding(BuildingView building) { if (_selection != building && _selection != null) { _buldngCursor.gameObject.SetActive(false); } if (!_selectedBuildings.ContainsKey(building.name)) { _selection = building; BuildingView cursor = Instantiate(_selection); _selectedBuildings.Add(building.name, cursor); _buldngCursor = cursor; } else { _selection = _selectedBuildings[building.name]; _buldngCursor = _selection; _buldngCursor.gameObject.SetActive(true); } }
public void MoveBuilding(Vector2 worldPoint) { BuildingView building = BuildingViews[_chosenBuldingId]; worldPoint = GridSnap(worldPoint); worldPoint.x = Mathf.Clamp(worldPoint.x, 0, _planeManager.Tiles.Count - 1); if (IsCanBuildOnPoint(building.scriptObj, worldPoint)) { for (int i = (int)building.PointOnPlane.x; i < building.PointOnPlane.x + building.scriptObj.Size.x; i++) { for (int j = (int)building.PointOnPlane.y; j < building.PointOnPlane.y + building.scriptObj.Size.y; j++) { _planeManager.Tiles[i + _settingsManager.PlaneOffset][j + _settingsManager.PlaneOffset].IsFilled = false; } } building.SelfTransform.position = new Vector3(worldPoint.x, 0, worldPoint.y); building.PointOnPlane = worldPoint; } }
public PlacedEntity(BuildingView view, CollisionTrigger trigger, BuidingProfile profile) { _view = view; _trigger = trigger; _profile = profile; }
void RefreshList(BuildingView _buildingDestroyed) { StartCoroutine(RefreshActualList()); }
private void OnEvent(TimedEventData _eventData) { #region Birth if (_eventData.ID == "Birth") { if (GameManager.I.GetResourceDataByID("Food").Value > 0 && GameManager.I.buildingManager.IsThereAnySpace()) { PopulationData newUnit = CreatePopulation(); AddPopulation(newUnit); AllPopulation.Add(newUnit); BuildingView firstOpening = GameManager.I.buildingManager.GetFirstOpening(); firstOpening.Data.Population.Add(newUnit); GameManager.I.messagesManager.ShowiInformation(MessageLableType.Birth, firstOpening.Data.Cell); } } #endregion #region FineMese if (_eventData.ID == "FineMese") { for (int i = 0; i < AllPopulation.Count; i++) { AllPopulation[i].Month++; if (AllPopulation[i].Month >= 12) { AllPopulation[i].MaxAge--; if (AllPopulation[i].MaxAge <= 0) { AllPopulation[i].Month = 0; } } } } #endregion #region Food if (_eventData.ID == "Eat") { for (int i = 0; i < AllPopulation.Count; i++) { int eatingTime = AllPopulation[i].EatingTime; AllPopulation[i].EatingTime--; if (AllPopulation[i].EatingTime <= 0) { AllPopulation[i].EatingTime = 0; GameManager.I.GetResourceDataByID("Food").Value -= AllPopulation[i].FoodRequirements; if (AllPopulation[i].EatingTime <= 0) { AllPopulation[i].EatingTime = eatingTime; } #region morte di fame if (GameManager.I.GetResourceDataByID("Food").Value <= 0) { GameManager.I.GetResourceDataByID("Food").Value = 0; GameManager.I.uiManager.FoodText.color = Color.red; UnitDeath(AllPopulation[i]); } #endregion } } } }