Навеяно темой о развитии языка команд. Сформулирую проблему. Команда в маде - это попытка выполнить какое-то действие персонажем. За вычетом служебных команд типа редактирования описания персонажа и так далее, которые обычно выполняются не прямо в игре. Итак, команда - это действие. От социала, до попытки произнести заклинание или создать вещь. Однако результат действия - успех, частичный успех, провал - зависит в том числе от состояния персонажа. Спит он, стоит, сидит, в здравом ли уме, может ли разговаривать, видеть и слышать. Чем больше эффектов от применения заклинаний и умений мы вводим, тем больше количество состояний персонажа. Вдобавок, состояния могут взаимодействовать между собой. Например, если мы произносим заклинание, которое жертва должна услышать для его успеха, то глухой персонаж окажется к нему невосприимчив. Собственно, вопрос. А как бы достаточно изящно выполнить обработку команд в зависимости от состояния персонажа? Для каждой команды составлять длиннющие списки флагов "тут можно, тут нельзя" и сравнивать при каждом выполнении команды? Пока что есть только идея группировать состояния и аффекты во множества, а для команды указывать, каким множествам она соответствует/не соответствует. Чуть лучше, но только чуть.
|