public void OpenDialog(KebabBuildingController kebabBuildingController, UnityAction cancelEvent = null) { Display(); kebabBuilding = kebabBuildingController.building; title.text = kebabBuilding.ToString(); addEmployeeButton.onClick.RemoveAllListeners(); addEmployeeButton.onClick.AddListener(kebabBuilding.HireEmployee); fireEmployeeButton.onClick.RemoveAllListeners(); fireEmployeeButton.onClick.AddListener(kebabBuilding.FireEmployee); cancelButton.onClick.RemoveAllListeners(); cancelButton.onClick.AddListener(ClosePanel); cancelButton.onClick.AddListener(kebabMenuController.DiscardChanges); deleteButton.onClick.RemoveAllListeners(); deleteButton.onClick.AddListener(kebabBuildingController.Delete); deleteButton.onClick.AddListener(FlushDialogData); deleteButton.onClick.AddListener(ClosePanel); if (cancelEvent != null) { cancelButton.onClick.AddListener(cancelEvent); deleteButton.onClick.AddListener(cancelEvent); } kebabMenuController.SetupKebabMenu(kebabBuilding.kebabMenu); }
public void DeleteKebabBuilding(KebabBuilding building) { world.DeleteBuilding(building, building.tile); GameObject tileGameObject = SpawnObject(buildableTilePrefab, building.tile.ToString(), building.tile.x, building.tile.z, tileContainer); TileController tileController = tileGameObject.GetComponent<TileController>(); tileController.tile = building.tile; StartCoroutine(world.SetNewCustomerDestinations(building.tile.x, building.tile.z)); }
public void AddAndSpawnKebabBuilding(KebabBuilding building, Tile tile) { StopCoroutine("CustomerSpawnerRutine"); if (tile.type == TileType.Buildable) Destroy(GameObject.Find(tile.ToString())); world.AddBuilding(building, tile); SpawnBuilding(building); StartCoroutine(world.SetNewCustomerDestinations(tile.x, tile.z)); StartCoroutine("CustomerSpawnerRutine"); }
public void Click() { Debug.Log("Clicked " + tile.ToString()); if (tile.type == TileType.Buildable) { GenericDialog panel = GenericDialog.instance; panel.OpenDialog("Build Kebab Shop!", "Build a kebab shop and expand your empire!", BuildKebabBuilding, string.Format("Build (-{0} cash)!", Cost()), CloseKebabBuildingOverlay); OverlayHelper overlayHelper = OverlayHelper.instance; KebabBuilding fakeKebabBuildingForOverlay = new KebabBuilding(null); fakeKebabBuildingForOverlay.tile = tile; overlayHelper.ActivateKebabBuildingOverlay(fakeKebabBuildingForOverlay); } }
private void GoToKebabBuilding(KebabBuilding kebabBuilding) { destinationX = kebabBuilding.tile.x; destinationZ = kebabBuilding.tile.z; state = CustomerState.MovingToKebabBuilding; FindPath(); }
private MenuItem DecideKebabMenuChoice(KebabBuilding destinationKebabBuilding) { List<MenuItem> affordableMenuItemChoices = destinationKebabBuilding.kebabMenu.GetAffordableMenuItems(cash); if (affordableMenuItemChoices.Count == 0) { mood = CustomerMood.AngryNotEnoughCash; return null; } else return Utils.Random(affordableMenuItemChoices); }
private bool DecideIfJoinQueue(KebabBuilding kebabBuilding) { int decisionValue = hunger - 50; // Since 50 should be the average decisionValue += kebabBuilding.Reputation; decisionValue -= kebabBuilding.customersInQueue.Count; decisionValue += Utils.RandomInt(-10, 10); bool decision = decisionValue >= 0; if (decision) { state = CustomerState.Queued; kebabBuilding.customersInQueue.Add(this); timeWhenLeavesQueue = Time.time + decisionValue; } //Debug.Log(string.Format("Decision value {0}, hunger {1}, building rep {2}, queue {3}", decisionValue, hunger, kebabBuilding.Reputation, kebabBuilding.customersInQueue.Count)); return decision; }
public override void SetBuilding(Building building) { this.building = (KebabBuilding)building; }
private void FlushDialogData() { kebabBuilding = null; }