//function to set the volitle status and use dialogue box to show status change, non conditional operator used public void SetVolitileStatus(ConditionsID conditionsID) { //if a status effect is already inplace return if (VolitileStatus != null) { return; } VolitileStatus = ConditionsDB.Conditions[conditionsID]; VolitileStatus?.OnStart?.Invoke(this); StatusChange.Enqueue($"{Base.Name}{VolitileStatus.StartMessage}"); }
//applciation of the boost features public void ApplyBoosts(List <StatBoost> statBoosts) { foreach (var statBoost in statBoosts) { var stat = statBoost.stat; var boost = statBoost.boost; //stats cant be boosted or dulled for more than 6 places so clamp StatBoost[stat] = Mathf.Clamp(StatBoost[stat] + boost, -6, 6); //shows a stat change in dialogue. Enqueue is to add to a queue if (boost > 0) { StatusChange.Enqueue($"{Base.Name}'s {stat} rose!"); } else { StatusChange.Enqueue($"{Base.Name}'s {stat} fell!"); } } }