Записываю значение в словарь, и даже при моментальной проверке там оказывается Null:
_attacks.Add(TestAttack.Name, new TestAttack());
GD.Print(_attacks[TestAttack.Name]);
_attacks - Dictionary<string, Attack>
TestAttack наследуется от Attack
В словаре все нормально. У Вас есть какие-то неинициализированные поля в свежесозданном экземпляре TestAttack.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости