public bool TryPlace() { if (_isPlaced) { throw new System.InvalidOperationException(); } if (_trigger.IsCollised) { return(false); } Destroy(_trigger); _view.Place(); var production = new BuildingProduction(); production.Init(_profile); _view.gameObject.GetOrAddComponent <BuildingProductionBehaviour>().Init(production); _isPlaced = true; return(true); }
public List <(string, string)> Properties() { List <(string, string)> items = new List <(string, string)>(); items.Add(("Type", Enum.GetName(typeof(TileTypes), TileType))); if (_building != null) { Building b = _building; items.Add(("Building", b.Name)); items.Add(("Efficiency", b.efficiency.ToString())); if (b is BuildingHousing) { foreach (Worker w in b._workers) { string title; if (w.job() != null) { title = ((BuildingProduction)w.job()._building).WorkerDescription; } else { title = "Unemployed"; } items.Add((title + "\n", String.Format("Happiness: {0:f2}\nAge: {1:f2}", w.happiness, w._age))); } } if (b is BuildingProduction) { BuildingProduction bp = (BuildingProduction)b; items.Add(("Progress", bp.progress.ToString("f2"))); items.Add(("Jobs total", b._jobs.Count.ToString())); items.Add(("Jobs available", b._jobs.FindAll(x => x._worker == null).Count.ToString())); } } return(items); }