using UnityEngine; public class BlacksmithUpgrade : MonoBehaviour, DayNightCycle.IDaytimeSensitive { [SerializeField] private BuildingInteractor buildingInteractor; [SerializeField] private ProductionBar productionBar; [SerializeField] private Weapon.EDamageAffectedByBlacksmithUpgrade upgrade; [SerializeField] private float multiplyer = 1.2f; [SerializeField] private int researchTime = 2; [SerializeField] private Equippable researchSpeedPerk; private int researchTimeLeft; private void Start() { DayNightCycle.Instance.RegisterDaytimeSensitiveObject(this); } public void OnDawn_AfterSunrise() { } public void OnDawn_BeforeSunrise() { if (!base.gameObject.activeInHierarchy) { return; } researchTimeLeft--; Debug.Log(researchTimeLeft); UpdateProgressBar(); if (researchTimeLeft <= 0) { productionBar.gameObject.SetActive(value: false); switch (upgrade) { case Weapon.EDamageAffectedByBlacksmithUpgrade.MultiplyBy_MeleeDamage: BlacksmithUpgrades.instance.meleeDamage *= multiplyer; break; case Weapon.EDamageAffectedByBlacksmithUpgrade.MultiplyBy_RangedDamage: BlacksmithUpgrades.instance.rangedDamage *= multiplyer; break; case Weapon.EDamageAffectedByBlacksmithUpgrade.DivideBy_MeleeResistance: BlacksmithUpgrades.instance.meleeResistance *= multiplyer; break; case Weapon.EDamageAffectedByBlacksmithUpgrade.DivideBy_RangedResistance: BlacksmithUpgrades.instance.rangedResistance *= multiplyer; break; } buildingInteractor.buildingIsCurrentlyBusyAndCantBeUpgraded = false; buildingInteractor.UpdateInteractionState(); DayNightCycle.Instance.UnregisterDaytimeSensitiveObject(this); } } public void OnDusk() { } private void OnEnable() { researchTimeLeft = researchTime; if (PerkManager.IsEquipped(researchSpeedPerk)) { researchTimeLeft--; } UpdateProgressBar(); buildingInteractor.buildingIsCurrentlyBusyAndCantBeUpgraded = true; buildingInteractor.UpdateInteractionState(); } private void UpdateProgressBar() { productionBar.gameObject.SetActive(value: true); productionBar.UpdateVisual(1f - (float)researchTimeLeft / ((float)researchTime + 0.1f)); } }