Я строю статистическую c систему. В системе есть определенная статистика, которая полагается на другую статистику для расчета их окончательного значения. Вот моя первоначальная попытка:
public class ModdedStat
{
public delegate float Mod();
public Mod mod;
public float baseStat;
public float finalStat
{
get
{
return baseStat + mod();
}
}
}
К сожалению, это return baseStat + последний слушатель, подписанный на мод. Я проверял это следующим образом:
stat.baseStat = 0;
stat.mod += Out1;
stat.mod += Out2;
Console.Write(stat.finalStat);
Out1 и Out2 - это функции, возвращающие 1 и 2 соответственно. Консольная запись вернула «2».
Я никогда раньше не использовал делегаты возвращаемого типа, поэтому я не уверен, что не так с моим logi c. Есть ли решение, подобное этому, или даже совсем другой способ обхода?
Спасибо за помощь!