Example #1
0
    private void HandleItemBought(GameObject item)
    {
        FactoryShopApplier factoryShopApplier = item.GetComponent <FactoryShopApplier>();

        if (shopItemBuyer.PlayerHasEnoughScore(factoryShopApplier.cost))
        {
            float totalScore = totalScoreHandler.DecreaseTotalScore(factoryShopApplier.cost);

            totalScoreVisual.SetTotalScoreText(totalScore);

            playerProgressHandler.SaveTotalScore(totalScore);

            BasicFactory basicFactory = boughtItemSpawner.SpawnFactory(factoryShopApplier.gameObject).GetComponent <BasicFactory>();

            basicFactory.GetComponent <FactoryVisualTextSpawner>().SetVisualFactoryObjectsHolder(factoryVisualTextsHolder);

            basicFactory.SetTotalScoreHandler(totalScoreHandler);

            basicFactory.SetTotalScoreVisual(totalScoreVisual);

            basicFactory.SetProductionValues(factoryShopApplier.scorePerUnitOfTime, factoryShopApplier.unitOfTime);

            basicFactory.SetOnUnitOfTimePassedEventHandlers();

            basicFactory.StartFactory();
        }
    }