Exemple #1
0
    private void Start()
    {
        //Get data from save
        SavingAndLoading.instance.LoadGame();

        UIM = UIManager.instance;

        //Update the UI
        UIM.UpdateMoney(money);
        UIM.UpdateLooseChange(looseChange);
        UIM.UpdateMoneyPerClick(moneyPerClick);
        UIM.UpdateAutoClicks(numAutoClicks);

        //Start automators running
        StartCoroutine(Automators());

        //Check if the player has played the game yet today
        currentDate = DateTime.Today;
        if (currentDate.Date > lastDatePlayed.Date)
        {
            collectedDailyReward = false;
            lastDatePlayed       = currentDate;
            prestigeScore        = NumberHandler.IncreaseNumber(prestigeScore, prestigeScorePlayedADayEffect.ToString());
        }

        //Let the player know to collect their daily reward if they haven't yet
        if (!collectedDailyReward)
        {
            notificationPanel.SetActive(true);
        }
    }
    //Make the button show how much the item costs (including multipliers if it's being bought in bulk)
    public void UpdateBuyButton()
    {
        switch (itemType)
        {
        case ItemTypes.AUTOMATOR:
            string automatorCost = thisAutomator.cost;

            for (int i = 0; i < costMultiplier - 1; i++)
            {
                automatorCost = NumberHandler.IncreaseNumber(automatorCost, thisAutomator.cost);
            }

            cost.text = automatorCost;
            totalCost = automatorCost;
            break;

        case ItemTypes.ACCELERATOR:
            string acceleratorCost = thisAccelerator.cost;

            for (int i = 0; i < costMultiplier - 1; i++)
            {
                acceleratorCost = NumberHandler.IncreaseNumber(acceleratorCost, thisAccelerator.cost);
            }

            cost.text = acceleratorCost;
            totalCost = acceleratorCost;
            break;
        }
    }
        public void TestFizzBuzz()
        {
            var expectedResult = "FizzBuzz";
            var nh             = new NumberHandler();
            var actualResult   = nh.GetMessage(15);

            Assert.AreEqual(expectedResult, actualResult, "NumberHandler did not return FizzBuzz when value passed was 15");
        }
        public void Test1()
        {
            var expectedResult = "1";
            var nh             = new NumberHandler();
            var actualResult   = nh.GetMessage(1);

            Assert.AreEqual(expectedResult, actualResult, "NumberHandler did not return 1 when value passed was 1");
        }
Exemple #5
0
        public static string FizzBuzz(int number)
        {
            var fizzBuzzFakeDeluxeHandler = new FizzBuzzFakeDeluxeHandler();
            var fizzFakeDeluxeHandler     = new FizzFakeDeluxeHandler();
            var buzzFakeDeluxeHandler     = new BuzzFakeDeluxeHandler();
            var fizzBuzzDeluxeHandler     = new FizzBuzzDeluxeHandler();
            var fizzDeluxeHandler         = new FizzDeluxeHandler();
            var buzzDeluxeHandler         = new BuzzDeluxeHandler();
            var fakeDeluxeHandler         = new FakeDeluxeHandler();
            var deluxeHandler             = new DeluxeHandler();
            var fizzBuzzHandler           = new FizzBuzzHandler();
            var fizzBuzzContainerHandler  = new FizzBuzzContainerHandler();
            var fizzHandler          = new FizzHandler();
            var fizzContainerHandler = new FizzContainerHandler();
            var buzzHandler          = new BuzzHandler();
            var buzzContainerHandler = new BuzzContainerHandler();
            var numberHandler        = new NumberHandler();


            fizzBuzzFakeDeluxeHandler
            .setNext(fizzFakeDeluxeHandler)
            .setNext(buzzFakeDeluxeHandler)
            .setNext(fakeDeluxeHandler)
            .setNext(fizzBuzzDeluxeHandler)
            .setNext(fizzDeluxeHandler)
            .setNext(buzzDeluxeHandler)
            .setNext(deluxeHandler)
            .setNext(fizzBuzzHandler)
            .setNext(fizzBuzzContainerHandler)
            .setNext(fizzHandler)
            .setNext(fizzContainerHandler)
            .setNext(buzzHandler)
            .setNext(buzzContainerHandler)
            .setNext(numberHandler);


            //fizzBuzzFakeDeluxeHandler
            //    .setNext(fizzFakeDeluxeHandler)
            //    .setNext(buzzFakeDeluxeHandler)
            //    .setNext(fizzBuzzDeluxeHandler)
            //    .setNext(fizzDeluxeHandler)
            //    .setNext(buzzDeluxeHandler)
            //    .setNext(fakeDeluxeHandler)
            //    .setNext(deluxeHandler)
            //    .setNext(fizzBuzzHandler)
            //    .setNext(fizzBuzzContainerHandler)
            //    .setNext(fizzHandler)
            //    .setNext(fizzNumberContainerHandler)
            //    .setNext(buzzHandler)
            //    .setNext(buzzContainerHandler)
            //    .setNext(numberHandler);



            string result = fizzBuzzFakeDeluxeHandler.Handle(number);

            return(result);
        }
Exemple #6
0
    //Make each autoClick earn the user money on a timer
    public IEnumerator Automators()
    {
        for (int i = 0; i < numAutoClicks; i++)
        {
            money = NumberHandler.IncreaseNumber(money, moneyPerClick);
        }
        UIM.UpdateMoney(money);
        yield return(new WaitForSeconds(timeBetweenAutoClicks));

        StartCoroutine(Automators());
    }
Exemple #7
0
 //Set the player's click and autoClicks to the upgrade amount
 //Reset all other variables (including purchases)
 //Update the UI
 public void Upgrade()
 {
     moneyPerClick = GetUpgradeStartClick().ToString();
     numAutoClicks = GetUpgradeAutomators();
     money         = "0";
     UIM.ResetPurchases();
     UIM.UpdateMoneyPerClick(moneyPerClick);
     UIM.UpdateMoney(money);
     UIM.UpdateAutoClicks(numAutoClicks);
     prestigeScore = NumberHandler.IncreaseNumber(prestigeScore, moneyPerClick);
     prestigeScore = NumberHandler.IncreaseNumber(prestigeScore, numAutoClicks.ToString());
 }
    public void BuyButton()
    {
        //If the item is an automator or accelerator
        switch (itemType)
        {
        case ItemTypes.AUTOMATOR:
            switch (thisAutomator.moneyType)
            {
            //If it is bought with money or loose change
            case MoneyTypes.MONEY:
                //Check if there is enough money
                bool?result = NumberHandler.CompareNumbers(GS.GetMoney(), totalCost);
                //If there is then purchase the item
                if (result == true || result == null)
                {
                    MakePurchase();
                }
                break;

            case MoneyTypes.LOOSECHANGE:
                result = NumberHandler.CompareNumbers(GS.GetLooseChange(), totalCost);
                if (result == true || result == null)
                {
                    MakePurchase();
                }
                break;
            }
            break;

        case ItemTypes.ACCELERATOR:
            switch (thisAccelerator.moneyType)
            {
            case MoneyTypes.MONEY:
                bool?result = NumberHandler.CompareNumbers(GS.GetMoney(), totalCost);
                if (result == true || result == null)
                {
                    MakePurchase();
                }
                break;

            case MoneyTypes.LOOSECHANGE:
                result = NumberHandler.CompareNumbers(GS.GetLooseChange(), totalCost);
                if (result == true || result == null)
                {
                    MakePurchase();
                }
                break;
            }
            break;
        }
    }
Exemple #9
0
 static void Main(string[] args)
 {
     while (true)
     {
         try
         {
             int x = Int32.Parse(Console.ReadLine());
             NumberHandler.NumberInWords(x);
         }
         catch (Exception)
         {
             Console.WriteLine("ricxvi arasworadaa shetanili");
         }
     }
 }
Exemple #10
0
        private NumberHandler handler;       // IT POINTS TO NO FUNCTION AT THIS MOMENT

        // A REGISTER FUNCTION SO THAT USER CAN REGISTER TO LISTEN TO EVENT RAISED BY NUMBER OBJECT
        // HOW IT CAN RECEIVE A METHOD THAT IS COMPATIBLE WITH NumberHandler SIGNATURE?
        // ANSWER IS RECEVING NumberHandler OBJECT
        public void RegisterWithNumber(NumberHandler handler)
        {
            // handler ===> Reference To Method That User Wanna Called

            // We Can Combine Both The Handler Using Delegate.Combine

            if (this.handler == null)
            {
                // this.handle ==> null
                // JUST SET this.handler to passed handler
                this.handler = handler;
            }
            else
            {
                // Combine!!
                this.handler = Delegate.Combine(this.handler, handler) as NumberHandler;
            }
        }
 /// <summary>
 /// Benachrichtigt die registrierten Beobachter, dass eine neue Zahl generiert wurde.
 /// </summary>
 /// <param name="number">Die generierte Zahl.</param>
 public void NotifyObservers(int number)
 {
     Console.WriteLine($"New Number: {number}");
     NumberHandler?.Invoke(this, number);
 }
Exemple #12
0
 public void IncreaseMoney()
 {
     money         = NumberHandler.IncreaseNumber(money, moneyPerClick);
     prestigeScore = NumberHandler.IncreaseNumber(prestigeScore, moneyPerClick);
     UIM.UpdateMoney(money);
 }
Exemple #13
0
        public FizzBuzzHandler(NumberHandler succesor) : base(succesor)
        {
            canWeHandleInputNumber = new Predicate <int>(candidateNumber => candidateNumber % 15 == 0);

            whatToReturnIfWeCanHandleInputNumber = "FizzBuzz";
        }
Exemple #14
0
 public void IncreaseLooseChange(int add)
 {
     looseChange   = NumberHandler.IncreaseNumber(looseChange, add.ToString());
     prestigeScore = NumberHandler.IncreaseNumber(prestigeScore, add.ToString());
     UIM.UpdateLooseChange(looseChange);
 }
Exemple #15
0
 public void DecreaseLooseChange(string takeaway)
 {
     looseChange = NumberHandler.DecreaseNumber(looseChange, takeaway);
     UIM.UpdateLooseChange(looseChange);
 }
Exemple #16
0
 public void DecreaseMoney(int takeaway)
 {
     money = NumberHandler.DecreaseNumber(money, takeaway.ToString());
     UIM.UpdateMoney(money);
 }
Exemple #17
0
 public void DecreaseMoney(string takeaway)
 {
     money = NumberHandler.DecreaseNumber(money, takeaway);
     UIM.UpdateMoney(money);
 }
Exemple #18
0
 public void IncreaseMoney(int add)
 {
     money         = NumberHandler.IncreaseNumber(money, add.ToString());
     prestigeScore = NumberHandler.IncreaseNumber(prestigeScore, add.ToString());
     UIM.UpdateMoney(money);
 }
Exemple #19
0
 private string GetEditionString()
 {
     return(Edition == null ? "" : $" {NumberHandler.ToOrdinal(Edition.Value)} edition");
 }
Exemple #20
0
 public PredicateAndStringHandler(NumberHandler succesor)
 {
     this.succesor = succesor;
 }
Exemple #21
0
 private static string CreateEditionText(int?edition)
 => !edition.HasValue || edition.Value < 2 ? "" : $@" {NumberHandler.ToOrdinal(edition.Value)} edition";
Exemple #22
0
 public void AddAutoClick(int amount)
 {
     prestigeScore  = NumberHandler.IncreaseNumber(prestigeScore, (amount * 100).ToString());
     numAutoClicks += amount;
     UIM.UpdateAutoClicks(numAutoClicks);
 }
Exemple #23
0
 public void DecreaseLooseChange(int takeaway)
 {
     looseChange = NumberHandler.DecreaseNumber(looseChange, takeaway.ToString());
     UIM.UpdateLooseChange(looseChange);
 }
Exemple #24
0
        private NumberHandler handler;       // IT POINTS TO NO FUNCTION AT THIS MOMENT

        // A REGISTER FUNCTION SO THAT USER CAN REGISTER TO LISTEN TO EVENT RAISED BY NUMBER OBJECT
        // HOW IT CAN RECEIVE A METHOD THAT IS COMPATIBLE WITH NumberHandler SIGNATURE?
        // ANSWER IS RECEVING NumberHandler OBJECT
        public void RegisterWithNumber(NumberHandler handler)
        {
            // JUST COMBINE USING OVERLOADED OPERATOR +=
            this.handler += handler;
        }
Exemple #25
0
 public void AddMoneyPerClick(string amount)
 {
     moneyPerClick = NumberHandler.IncreaseNumber(moneyPerClick, amount);
     prestigeScore = NumberHandler.IncreaseNumber(prestigeScore, amount);
     UIM.UpdateMoneyPerClick(moneyPerClick);
 }
Exemple #26
0
        static void Main(string[] args)
        {
            //создаём массив делегатов
            int count = 5;

            NumberHandler[] arrayNumbers = new NumberHandler[count];

            //определяем методы, которые будут хранить делегаты
            for (int i = 0; i < arrayNumbers.Length; i++)
            {
                arrayNumbers[i] = new NumberHandler(NumberHandlerMethod);
                //допустима и короткая запись
                //arrayDlgs[i] = RandNumber;
            }

            //создаём анонимный метод(делегат)
            AverageNumbersHandler averageHandler = delegate(NumberHandler[] arrayNumberHandlers)
            {
                //накопительная переменная
                long averageNumbers = 0;

                for (int i = 0; i < arrayNumberHandlers.Length; i++)
                {
                    //проверка, что делегат содержит ссылку на метод, не null
                    if (arrayNumbers[i] != null)
                    {
                        averageNumbers += arrayNumberHandlers[i]();
                    }
                }
                //возвращаем среднееарифметическое
                return((int)(averageNumbers /= arrayNumberHandlers.Length));
            };

            //результат вызова анонимного метода (делегата)
            Console.WriteLine("Use delegate, Average int is: " + averageHandler(arrayNumbers));



            //--------------------------------------------------------------------------------------------------
            //вариант 2 - создаём анонимный метод(делегат Func<NumberHandler[],int>)
            Func <NumberHandler[], int> averageFunc = delegate(NumberHandler[] arrayNumberHandlers)
            {
                //накопительная переменная
                long averageNumbers = 0;

                for (int i = 0; i < arrayNumberHandlers.Length; i++)
                {
                    //проверка, что делегат содержит ссылку на метод, не null
                    if (arrayNumbers[i] != null)
                    {
                        averageNumbers += arrayNumberHandlers[i]();
                    }
                }
                //возвращаем среднееарифметическое
                return((int)(averageNumbers /= arrayNumberHandlers.Length));
            };

            //результат вызова анонимного метода (делегата)
            Console.WriteLine("Use Func<T[],int> Average int is: " + averageFunc(arrayNumbers));

            Console.ReadKey();
        }