Cannot implicitly convert type 'T' to 'Int'
You can set constraint:
public int Change<T>(Stats type, T value) where T : IConvertible
Then:
var intValue = value.ToInt32();
Or another way (object cast is necessary not typo)
t += (int)(object)value;
Or use dynamic, by using dynamic you can do more, such as implicit casts
Or use Int32 - Int32 and int are both struct internally. No performance loss
you can try casting the value like this ...
t += (int)value;
or
t+= Convert.ToInt32(value);