コード例 #1
0
    //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}");
    }
コード例 #2
0
    //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!");
            }
        }
    }