Пример #1
0
 void OnNewMonthEvent(NewMonthEvent e)
 {
     if (units.RepairNeeded)
     {
         SetButtonState(ButtonState.Paused);
     }
 }
Пример #2
0
 void OnNewMonthEvent(NewMonthEvent e)
 {
     if (unit.RepairNeeded)
     {
         repairGroup.SetActive(true);
     }
 }
Пример #3
0
 void OnNewMonthEvent(NewMonthEvent e)
 {
     if (e.Month % 12 == 0)
     {
         BuildingManager.valueMultiplier += 0.1f;
         Debug.Log(BuildingManager.valueMultiplier);
     }
 }
Пример #4
0
 void OnNewMonthEvent(NewMonthEvent e)
 {
     TotalPaid += MonthlyPayment;
     if (Completed)
     {
         Events.instance.RemoveListener <NewMonthEvent>(OnNewMonthEvent);
     }
 }
Пример #5
0
    void OnNewMonthEvent(NewMonthEvent e)
    {
        foreach (Building b in buildings)
        {
            wealth += b.State == BuildingState.Owned ? b.TotalRent : 0;
        }
        Loan loan = LoanManager.GetLoan();

        if (loan != null && !loan.Completed)
        {
            wealth -= loan.MonthlyPayment;
        }
    }
Пример #6
0
    void OnNewMonthEvent(NewMonthEvent e)
    {
        currentMonth = e.Month;

        if (NeedsRepair)
        {
            monthsRepairNeeded++;
            if (tenantsPayingRent)
            {
                // The chances that tenants will stop paying rent until the apartment is fixed go up each month
                if (Random.value < ((float)monthsRepairNeeded / 36f))
                {
                    StopRent();
                    Events.instance.Raise(new RentStrikeEvent(this));
                }
            }
        }

        if (owned && hasTenants && tenantsPayingRent)
        {
            // collect rent
            Purse.wealth += Rent;

            // there's a chance a repair is needed
            if (!NeedsRepair && Random.value >= 0.95f)
            {
                NeedsRepair = true;
                repairCost  = (int)((Random.value * 10000).RoundToInterval(500));
                attention.gameObject.SetActive(true);
            }
        }

        // renovation takes 6 months
        if (Renovating && (currentMonth - renovationStart > 6))
        {
            Renovating     = false;
            startingValue *= 1.5f;
            ignoredRepairs = 0;
            renovated      = true;
            GetComponent <MeshRenderer>().material = ownedMaterial;
            Events.instance.Raise(new EndRenovationEvent(this));
        }
    }
Пример #7
0
 void OnNewMonthEvent(NewMonthEvent e)
 {
     Wealth += units.Rent;
 }
Пример #8
0
    void OnNewMonthEvent(NewMonthEvent e)
    {
        bool change;

        switch (State)
        {
        case BuildingState.NotForSale:
            change = Random.Range(0, 60) == 0;
            if (change)
            {
                if (Selected)
                {
                    Deselect();
                }
                SetState(BuildingState.ForSale);
            }
            break;

        case BuildingState.ForSale:
            change = Random.Range(0, 6) == 0;
            if (change)
            {
                if (Selected)
                {
                    Deselect();
                }
                SetState(BuildingState.NotForSale);
            }
            break;

        case BuildingState.Renovating:
            if (renovationTimer > 0)
            {
                renovationTimer--;
            }
            else
            {
                renovationTimer = 6;
                Upgrade(1);
                UpdateDisplayValue();
                SetState(BuildingState.Owned);
                Events.instance.Raise(new UpgradeBuildingEvent(this));
            }
            break;

        case BuildingState.Owned:

            bool needRepairs = Random.Range(0, 24) == 0;
            if (needRepairs && tenants.Count > 0)
            {
                int tenantIndex = Random.Range(0, tenants.Count);
                tenants[tenantIndex].NeedRepair = true;
            }

            int repairsNeeded = tenants.Sum(t => t.NeedRepair ? 1 : 0);
            DisplayRepairs(Mathf.Min(1, repairsNeeded));

            if (tenants.Count < Rooms)
            {
                Tenant newTenant;
                if (TenantManager.TryGetApplicant(PerRoomRent, Quality, out newTenant))
                {
                    applicants.Add(newTenant);
                }
            }

            if (TotalRent > 0)
            {
                // Tried to do a simple effect. failed.

                /*Transform c = GameObjectPool.Instantiate("Coins", transform.position);
                 * c.SetParent(transform);
                 * c.position = Vector3.zero;*/
            }
            break;

        default: break;
        }
    }
Пример #9
0
 protected void OnNewMonthEvent(NewMonthEvent e)
 {
     OnNewMonth();
 }