コード例 #1
0
    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);
    }
コード例 #2
0
    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));
    }
コード例 #3
0
    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");
    }
コード例 #4
0
ファイル: TileController.cs プロジェクト: bjorntore/KebabOslo
    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);
        }
    }
コード例 #5
0
ファイル: Customer.cs プロジェクト: bjorntore/KebabOslo
 private void GoToKebabBuilding(KebabBuilding kebabBuilding)
 {
     destinationX = kebabBuilding.tile.x;
     destinationZ = kebabBuilding.tile.z;
     state = CustomerState.MovingToKebabBuilding;
     FindPath();
 }
コード例 #6
0
ファイル: Customer.cs プロジェクト: bjorntore/KebabOslo
 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);
 }
コード例 #7
0
ファイル: Customer.cs プロジェクト: bjorntore/KebabOslo
    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;
    }
コード例 #8
0
 public override void SetBuilding(Building building)
 {
     this.building = (KebabBuilding)building;
 }
コード例 #9
0
 private void FlushDialogData()
 {
     kebabBuilding = null;
 }