public static void TweakCorporatePolicy(GameContext gameContext, GameEntity company, CorporatePolicy policy, int value) { if (Cooldowns.HasCorporateCultureUpgradeCooldown(gameContext, company)) { return; } Cooldowns.AddCorporateCultureUpgradeCooldown(gameContext, company, GetCultureChangeSpeed(company)); var culture = GetOwnCulture(company); culture[policy] = Mathf.Clamp(value, C.CORPORATE_CULTURE_LEVEL_MIN, C.CORPORATE_CULTURE_LEVEL_MAX); company.ReplaceCorporateCulture(culture); }
public static void TweakCorporatePolicy(GameContext gameContext, GameEntity company, CorporatePolicy policy, int value) { if (Cooldowns.HasCorporateCultureUpgradeCooldown(gameContext, company)) { return; } Cooldowns.AddCorporateCultureUpgradeCooldown(gameContext, company, Balance.CORPORATE_CULTURE_CHANGES_DURATION); var culture = GetOwnCorporateCulture(company); var prevValue = culture[policy]; culture[policy] = Mathf.Clamp(value, Balance.CORPORATE_CULTURE_LEVEL_MIN, Balance.CORPORATE_CULTURE_LEVEL_MAX); if (value != prevValue) { // culture changed NotificationUtils.AddPopup(gameContext, new PopupMessageCultureChange(company.company.Id)); } company.ReplaceCorporateCulture(culture); }