private void LoadCharge(ChargeDataGrid charge)
 {
     if (charge != null)
     {
         ChargeDate       = charge.ChargeDate;
         SelectedBuilding = BuildingsCollection.FirstOrDefault(x => x.BuildingId.Equals(charge.Building.BuildingId));
         //ApartmentNumber = charge.Apartment.ApartmentNumber;
         SelectedApartmentNumber = ApartmentsNumbersCollection.FirstOrDefault(x => x.Equals(charge.Apartment.ApartmentNumber));
         OwnerName = charge.Owner.OwnerName + Environment.NewLine + charge.Owner.MailAddress;
     }
 }
Esempio n. 2
0
 public BuildingsCollection(BuildingsCollection buildings)
 {
     foreach (KeyValuePair <BuildingEnum, Building> kvp in buildings)
     {
         if (ContainsKey(kvp.Key))
         {
             this[kvp.Key].AddLevel(kvp.Value.Level);
         }
         else
         {
             Add(kvp.Key, kvp.Value);
         }
     }
 }
Esempio n. 3
0
    public static BuildingsCollection operator +(BuildingsCollection a, BuildingsCollection b)
    {
        if (b == null)
        {
            return(a);
        }

        var ret = new BuildingsCollection(a);

        foreach (var key in b.Keys)
        {
            ret[key].AddLevel(b[key].Level);
        }

        return(ret);
    }
            static bool Prefix(SettlementState __instance, SettlementBuilding building, ref SettlementBuilding __result,
                               BuildingsCollection ___m_Buildings)
            {
                try
                {
                    if (!Main.enabled)
                    {
                        return(true);
                    }
                    if (!Main.settings.currencyFallback)
                    {
                        return(true);
                    }

                    if (!building.IsFinished || !___m_Buildings.HasFact(building) || !building.Blueprint.UpgradesTo)
                    {
                        return(false);
                    }

                    if (!KingdomCurrencyFallback.CanSpend(__instance.GetActualCost(building.Blueprint.UpgradesTo)))
                    {
                        UberDebug.LogWarning("Cannot upgrade " + building.Blueprint + ": not enough BP");
                        return(false);
                    }

                    KingdomCurrencyFallback.SpendPoints(__instance.GetActualCost(building.Blueprint));

                    SettlementBuilding result = ___m_Buildings.Upgrade(building);

                    __instance.Update();

                    EventBus.RaiseEvent((ISettlementBuildUpdate h) => h.OnBuildUpdate(building));

                    __result = result;
                    return(false);
                }
                catch (Exception ex)
                {
                    Main.Error(ex);
                    return(true);
                }
            }
Esempio n. 5
0
    void Start()
    {
        IncomeInventory = new GoodsCollection(0);
        Inventory       = new GoodsCollection(100);
        GuiManager.UpdateGui(Inventory);
        Buildings2 = new BuildingsCollection2();

        Inventory.OnCollectionChange += (collection, args) =>
        {
            GuiManager.UpdateGui(Inventory);
        };

        Globals.GridManager.OnBuildingPlaced -= PlaceBuilding;
        Globals.GridManager.OnBuildingPlaced += PlaceBuilding;

        //TODO
        Buildings = new BuildingsCollection();
        foreach (var key in Buildings.Keys)
        {
            Building b = Buildings[key];
            b.Sprite = Resources.Load <Sprite>(b.BuildingName);

            var btn = Instantiate(buildingButtonObject);
            btn.transform.SetParent(buildingListObject.transform);
            btn.transform.localScale = Vector3.one;

            var bb = btn.GetComponent <BuildingButton>();
            bb.InitializeBuildingButton(this, b);
            b.BuildingButton = bb;
        }

        _modeButtons[0].GetComponent <Button>().onClick.AddListener(() => { OnModeButtonClick(0); });
        _modeButtons[1].GetComponent <Button>().onClick.AddListener(() => { OnModeButtonClick(1); });
        _modeButtons[2].GetComponent <Button>().onClick.AddListener(() => { OnModeButtonClick(2); });
        _modeButtons[3].GetComponent <Button>().onClick.AddListener(() => { OnModeButtonClick(3); });
    }
            static bool Prefix(SettlementState __instance, ref SettlementBuilding __result,
                               BlueprintSettlementBuilding building, SettlementGridTopology.Slot slot, bool force,
                               ref int ___m_SlotsLeft, BuildingsCollection ___m_Buildings)
            {
                try
                {
                    if (!Main.enabled)
                    {
                        return(true);
                    }
                    if (!Main.settings.currencyFallback)
                    {
                        return(true);
                    }

                    var removedBuilding = true;

                    if (!force)
                    {
                        if (!__instance.CanBuild(building))
                        {
                            __result = null;
                            return(false);
                        }

                        BuildingSlot slotObject = slot.GetSlotObject();

                        if (slotObject?.CanBuildHere(building) != true)
                        {
                            return(false);
                        }

                        KingdomCurrencyFallback.SpendPoints(__instance.GetActualCost(building));

                        removedBuilding = __instance.FreeBuildings.Remove(building) || KingdomState.Instance.FreeBuildings.Remove(building);
                    }

                    SettlementBuilding settlementBuilding = ___m_Buildings.Build(building);
                    settlementBuilding.BuildOnSlot(slot);

                    if (building.SpecialSlot == SpecialSlotType.None)
                    {
                        ___m_SlotsLeft -= building.SlotCount;
                    }

                    if (!force && !removedBuilding || SellDiscountedBuildingGetter(__instance) != building)
                    {
                        SellDiscountedBuildingSetter(__instance, null);
                    }

                    __instance.Update();

                    EventBus.RaiseEvent((ISettlementBuildingHandler h) => h.OnBuildingStarted(__instance, settlementBuilding));

                    __result = settlementBuilding;
                    return(false);
                }
                catch (Exception ex)
                {
                    Main.Error(ex);
                    return(true);
                }
            }