public AutomationsService(PlayerData playerData, AutomationsData automationsData) { _playerData = playerData; _automationsData = automationsData; _automationsData.Attach(this); _playerData.Attach(this); for (int i = 0; i < _automationsData.Automations.Count; i++) { _automationsData.Automations[i].Attach(this); } /*foreach (Transform automation in transform) * { * AutomationLogic automationLogic = automation.GetComponent<AutomationLogic>(); * automationLogic.Init(_playerData, _automationsData, _automationsData.Automations[automationLogic.AutomationId]); * }*/ //_upgradeLevelsAmount.Init(_automationsData); //_upgradeAvailableChecker.Init(_automationsData); TryUnlockNewAutomation(_playerData.Gold); CheckIfCanUpgradeSomething(); }
public void Upgrade(Automation automationData, AutomationsData automationsData) { if (automationData.Level != 1) { automationsData.ClickPower -= automationData.CurrentDamage; } for (int i = 0; i < automationsData.LevelsToUpgrade; i++) { long newDamage = 0; if (automationData.Level == 20) { automationsData.CriticalPowerIncreasePercentage += .1f; automationsData.ClickPowerCriticalHitChance += .1f; } automationData.Level += 1; newDamage += Mathf.RoundToInt(automationData.StartingDamage * UpgradeFactor * automationData.Level); foreach (var item in automationData.UpgradeComponents) { if (item.IsUpgradeComponentPurchased) { newDamage += Mathf.RoundToInt(newDamage * item.Percentage / 100); } } automationData.CurrentDamage = newDamage; } automationsData.ClickPower += automationData.CurrentDamage; automationsData.ClickPower += Mathf.RoundToInt(automationsData.ClickPower * automationsData.ClickPowerPercentageIncrease); RecalculateCost(automationsData.LevelsToUpgrade, automationData); }
public AutomationBuilder(PlayerData playerData, AutomationsData automationsData, AutomationPresentation automationPrefab) { _playerData = playerData; _automationsData = automationsData; _automationPresentationPrefab = automationPrefab; Reset(); }
public void Execute(UpgradeComponent upgradeComponent, float percentageToUpgrade) { AutomationsData automationsData = upgradeComponent.AutomationsData; automationsData.ClickPowerPercentageIncrease += percentageToUpgrade; automationsData.ClickPower += Mathf.RoundToInt(automationsData.AutomationsPower * percentageToUpgrade * .01f); }
public AutomationBusinessRules(IAutomationBusinessOutput automationBusinessOutput, PlayerData playerData, Automation automation, AutomationsData automationsData) { _automation = automation; _playerData = playerData; _automationOutput = automationBusinessOutput; _automationsData = automationsData; }
public void Init(AutomationsData automationsData) { foreach (Transform child in transform) { if (child.gameObject.GetComponent <AutomationLogic>() != null) { _automationObjects.Add(child.gameObject); } } _automationsData = automationsData; }
public UpgradeComponent(PlayerData playerData, AutomationsData automationsData, Automation automationData, UpgradeComponentData upgradeComponentData, IAutomationCommand automationCommand, AutomationUpgradeComponentPresenter skillPresenter) { _upgradeComponentData = upgradeComponentData; _playerData = playerData; AutomationsData = automationsData; AutomationData = automationData; _skillCommand = automationCommand; _skillPresenter = skillPresenter; Subscribe(); }
public AutomationLogic(PlayerData playerData, AutomationsData automationsData, AutomationPresentation automationPresentation, Automation automationData) { _playerData = playerData; _automationsData = automationsData; _automationPresentation = automationPresentation; _automationData = automationData; _automationPresentation.UpgradeButtonPressed += TryUpgradeAutomation; _playerData.Attach(this); _automationData.Attach(this); OnGoldAmountUpdated(_playerData.Gold); _automationPresentation.gameObject.SetActive(_automationData.IsUnlocked); }
public void Upgrade(Automation automationData, AutomationsData automationsData) { long newDamage = 0; if (automationData.Level != 0) { automationsData.AutomationsPower -= automationData.CurrentDamage; } for (int i = 0; i < automationsData.LevelsToUpgrade; i++) { automationData.Level += 1; newDamage += Mathf.RoundToInt(automationData.StartingDamage * UpgradeFactor * automationData.Level); if (automationData.Level >= 200 && automationData.Level % 25 == 0 && automationData.Level < 4000) { newDamage *= 4; } if (automationData.Level >= 1000 && automationData.Level % 1000 == 0 && automationData.Level < 4000) { newDamage *= 10; } foreach (var item in automationData.UpgradeComponents) { if (item.IsUpgradeComponentPurchased) { newDamage += Mathf.RoundToInt(newDamage * item.Percentage / 100); } } automationData.CurrentDamage = newDamage; } automationsData.AutomationsPower += automationData.CurrentDamage; automationsData.AutomationsPower += Mathf.RoundToInt(automationsData.AutomationsPower * automationsData.AutomationsPowerPercentageIncrease); RecalculateCost(automationsData.LevelsToUpgrade, automationData); }
public void Init(AutomationsData automationsData) { _automationsData = automationsData; }