Версия 3.1.1
13.12.2007
- Добавлен класс EchoTemplate.
- В NerealAbstract добавлен вариант метода Echo(EchoTemplate).
- В NerealAbstract добавлен вирт.метод DirectEcho, его прежняя реализация в AbstractCharacter сделана перекрытием.
- В NerealAbstract добавлены вирт.методы EchoArgs и EchoArgsRecurse, все старые методы Echo оставлены для совместимости и переделаны на использование новых.
- Добавлены классы: EmptyEchoTemplate, SimpleEchoTemplate.
- В Utility удалены все перегруженные методы EchoHandler и вспомогательные для них.
- Добавлена группа классов EchoTemplatePart - части шаблона.
- В EchoTemplate добавлен метод Compile - компиляция строки-шаблона в список частей, для исключения постоянного одинакового распознавания строк.
- Удален флаг EchoFlag.Recurse.
- Добавлен абстрактный класс AbstractEchoTemplate, все остальные EchoTemplate сделаны наследниками от него.
- В Names добавлены статик-экземпляры: He, She, It, They. Так же добавлен статик-метод ThirdPerson, выдающий по роду одно из этих местоимений.
- Добавлен класс SelfTargetEchoTemplate - выбирается один из двух шаблонов, в зависимости от равенства двух указанных аргументов.
- Добавлена команда шаблона вставки цвета в зависимости от аргумента - $, и его подкоманда вставки цвета голоса - v.
- Команда "представить" первой переделана под использование EchoTemplate.
- В Link добавлен перекрытый метод GetVisibilityRanges.
- Метод NormalizeColors перенесен из класса EchoTemplate в SimpleEchoTemplate - для обработки цветов и в безаргументных шаблонах.
- В LocationType добавлено вирт.свойство Luminosity - освещенность по умолчанию для закрытых локаций.
- В LocationTypes.Room добавлено свойство DefaultLuminosity, возвращаемое как значение Luminosity.
- Скриптовый модуль немного поправлен под использование EchoTemplate.
- Исправлена опечатка в команде "представить".
14.12.2007
- Файл EchoTemplate.cs разделен на несколько отдельных файлов.
- Класс EchoTemplate переименован в ParamEchoTemplate.
- Класс SelfTargetEchoTemplate переименован в BinarySelectEchoTemplate.
- Добавлен делегат EchoTemplatePredicate и статик-класс EchoTemplateHelpers.
- Добавлены делегат EchoTemplateAction и класс ActionEchoTemplate.
- У метода AbstractEchoTemplate.EchoTo и всех его реализациях в наследниках возвращаемый тип изменен на bool.
17.12.2007
- Добавлен класс EchoTemplateArgs - хранение переменных для одной конкретной рассылки шаблона. По умолчанию хранит массив простых аргументов.
- В AbstractEchoTemplate добавлен вирт.метод CreateArgs, а тип параметра args метода EchoTo изменен на EchoTemplateArgs.
- В NerealAbstract метод EchoArgs дополнен для создания экземпляра EchoTemplateArgs и дальнейшей передачи именно его, а не массива аргументов.
- Удалены флаги EchoFlag.NotFirst и EchoFlag.NotSecond.
- Добавлена генерик-версия класса AbstractEchoTemplate - для исключения приведений типов аргументов.
- В команде "представить" делегат действия представления вынесен из анонимного в отдельный статик-метод.
- Добавлены классы: PredicateEchoTemplate, SoundEchoTemplate.
- Множество адаптаций к удаленному флагу EchoFlag.NotFirst.
- Класс BinarySelectEchoTemplate переименован в BinaryEchoTemplate.
- Временно отключена работа социалов.
18.12.2007
- Переработана взаимосвязь между Launcher и Nereal, путем введения класса-посредника NerealMediator. Он включает в себя компиляцию и работу с Nereal, давая Launcher'у независимость.
- Исправлены некоторые ошибки.
- Добавлен класс NullEchoTemplate.
- В ParamEchoTemplate добавлен фабричный статик-метод, создающий новый шаблон или выдающий NullEchoTemplate при пустой строке шаблона. Во всех классах составных шаблонов введено его использование.
- Обший класс социала адаптирован к новым шаблонам. Начата адаптация конкретных социалов.
19.12.2007
- В социалах добавлен 3-й параметр: имя цели, видимое отправителем. Нужно для вставки в фразы, звучащие от лица отправителя.
- Завершена адаптация социалов.
- Исправлена ошибка в ParamEchoTemplate.
- В Names добавлено множество местоимений: "я" разного пола, "мы", "мой" всех родов, "наше" всех родов.
- В синтаксис шаблонов добавлен специальный вариант номера аргумента "-", в этом случае аргументом является получатель.
- В Utility добавлен метод YesNoName.
- В CharacterOptions добавлено свойство ThirdPersonView - вид от третьего лица. По умолчанию False. В команду "опции" добавлена настройка этого свойства.
- В NerealAbstract добавлено вирт.свойство SelfName. В Character оно перекрыто.
- В Character удалено свойство NameReal, поскольку оно всегда будет равно Name.
- В LookAs добавлен запрос SelfName вместо Names.You.
- В синтаксис шаблонов добавлен модификатор команды "=". Если он стоит перед символом команды, то она будет обработана без подстановки "я"/"вы".
- В синтаксисе шаблонов команда выбора по полу разделена на две: выбор по полу/числу (4 варианта) и выбор по лицу/числу (5 вариантов).
21.12.2007
- Класс EchoBuilder сделан наследником SimpleEchoTemplate, и переделан на построение не строки шаблона, а сразу списка команд шаблона. Так же файл, содержащий этот класс, перенесен как EchoTemplate/Builder.cs.
- Клиенты класса EchoBuilder адаптированы к его новой версии.
22.12.2007
- В VisionRange добавлены: метод Multiply, оператор * на число, статик-метод CreateByPoint.
- В NerealAbstract: метод GetVisibilityRanges переименован в GetVisibility, добавлены методы GetSensibility и GetVisibility с параметром VisionType.
- Доработан SoundEchoTemplate.
- В методе Utility.SpeechCorrect убран параметр color.
- Разговорные команды адаптированы к новым шаблонам.
- Добавлен статический класс EchoTemplateCompiler, куда вынесены из ParamEchoTemplate методы разбора шаблонов.
- В EchoBuilder добавлен метод Compile, который компилирует переданную ему строку и добавляет к шаблону. Этим исправлено построение шаблонов перемещения.
23.12.2007
- В синтаксисе шаблонов добавлена команда 'p' - вставка местоимения по полу аргумента.
- Поправлены некоторые тексты шаблонов.
- Уменьшена скорость забывания и сделано вспоминание на максимум при новом запоминании.
- Константа EmptyArgs перенесена в статический класс EchoTpl.
- В InputError вместо старых четырех свойств аргументов добавлены свойства Template и Args, добавлен метод EchoTo, добавлен статический метод Create.
- Добавлен класс ErrorEchoTemplate - потомок ParamEchoTemplate, приспособленный под хранение шаблонов ошибок. Имеет метод Error, выдающий новый экземпляр исключения InputError.
- Класс InputError перенесен к классу ErrorEchoTemplate.
- Добавлен статический класс Errors, где собраны шаблоны ошибок.
- Из класса InputError удалены статические методы выдачи определенных исключений. Все команды адаптированы к этому изменению.
- В ContainerTemplates и NamesEditorQuestions добавлены свойства получения шаблонов ошибок.
- Множество прямых вызовов ошибок в командах и иных местах заменено на вызов заготовленных шаблонов ошибок.
24.12.2007
- В ItemSlotDescription добавлены кэширующие свойства получения шаблонов ошибок.
- Все оставшиеся прямые вызовы ошибок в командах и иных местах заменены на вызов заготовленных шаблонов ошибок.
- Добавлен перечислимый тип CharacterPersonView - с вариантами First, Second, и Third.
- В CharacterOptions свойство ThirdPersonView заменено на PersonView.
- Класс EchoTemplateGenderSelectPart переименован обратно в EchoTemplateSelectPart, и в него добавлена возможность выбора не только по полу, но и по любому числу, Enum'у, или bool'у.
- Добавлен вид от третьего лица (прежний назван видом от второго лица).
25.12.2007
- Исправлена обработка команды шаблонов Y.
- В AbstractCharacter свойство currentContext изменено на уровень protected, и добавлен свойство Context.
- В Request добавлен фабричный метод CreateContextError, куда перенесено создание заявки по ошибке из AbstractCharacter.InputHandler.
- Добавлен статический класс Templates, где собраны основные шаблоны, не связанные с конкретными контекстами и командами.
- Шаблоны, найденные в Character.cs перенесены в класс Templates.
- Шаблоны, найденные в Command.cs, перенесены в класс Templates.
- Шаблоны, найденные в Containers.cs, адаптированы к употреблению совершенных глаголов.
- Шаблоны, найденные в Request.cs, адаптированы к новой системе и возможности разных видов.
- Шаблоны, найденные в Roles.cs, адаптированы к новой системе.
- В AbstractCharacter добавлен вирт.метод Exit, в Character его реализация выводит сообщение о выходе.
- Шаблоны, найденные в Server.cs, перенесены в класс Templates.
- Шаблоны, найденные в World.cs, перенесены в класс Templates.
- Шаблоны, найденные в Static/HelpDict.cs, перенесены в класс Templates.
- В Request добавлен фабричный метод CreateCommandError, куда перенесено создание заявки по ошибке из CommandContext.
26.12.2007
- В Role добавлен перекрытый метод ToString, возвращающий свойство DisplayName.
- В GlobalConfig добавлено вычисляемое свойство TimeString.
- Все команды, кроме "!роль" и "титул" адаптированы к новой системе.
28.12.2007
- Команда "титул" адаптирована к новой системе, а так же, полностью переделана на работу через контекст, а не подкоманды.
29.12.2007
- Команда "!роль" переименована в "роль" и адаптирована к новой системе.
- Контекст SelectZoneContext адаптирован к новой системе.
31.12.2007
- В AbstractEchoTemplate добавлен шаблонный метод EchoTo, предназначенный для отправки списков.
- Файл Contexts/Request.cs адаптирован к новой системе.
03.01.2008
- Контекст TextEditorContext адаптирован к новой системе.
- Контекст LoginContext адаптирован к новой системе.
- При входе добавлен небольшой вступительный текст.
- Заменены шаблоны входа и выхода.
05.01.2008
- В GlobalConfig добавлено свойство OfflineInvisible - если оно true, то отключенных персонажей не видно.
- В Character переработан метод TitleFor для учета не только знакомства, но и уровня идентификации.
- В контексте управления титулами исправлен вывод списка действий при отсутствии титулов.
- В качестве эксперимента цвет социалов сделан обычным серым.
- Контекст RegistrationContext адаптирован к новой системе.
- В LoginContext убрана строка, оповещающая об успешном вводе пароля.
- В команде "!упр время" исправлен формат вывода времени.
- Начата переделка по отказу от множества перегруженных методов Echo, заменяя их одним с произвольным числом параметров и несколько иным их порядком.
- В ContainerTemplates добавлены кэширующие свойства получения шаблонов.
06.01.2008
- В NamesEditorQuestions добавлены кэширующие свойства получения шаблонов.
10.01.2008
- В ItemSlotDescription добавлены кэширующие свойства получения шаблонов.
- В AbstractContainer и его потомках удалены методы EchoDescription.
- В Item пара методов EchoDescription заменены на GetDescription и BuildDescription.
- Окончательно удалено старое множество методов Echo.
- Множество мелких исправлений работы с шаблонами.
- В Character добавлен метод Update, обновляющий все кэширующие свойства. Его вызовы вставлены в OnPostDeserialize и EndLogin.
12.01.2008
- Константы особых цветовых кодов и метод GetColor перенесены из ColorSystem в EchoColor.
- Методы ColorCode перенесены из Utility в EchoColor как GetCode и Build.
- Вместо цветового кода Prev добавлены цветовые коды Push и Pop. Соответственно изменено все, что с этим связано.
16.01.2008
- Добавлен контекст UniversalEditorContext, реализующий универсальный редактор любого сериализуемого объекта. На данный момент от него лишь заготовка.
- Добавлена команда "!редактор", вызывающая редактор текущей зоны.
- В PropertyInfo добавлено свойство DisplayName, по умолчанию выдающее обычное Name. В дальнейшем будет добавлен параметр в схеме данных.
- В PropertyInfo добавлен вирт.метод GetView, выдающий строку, описывающую это свойство в списке редактора. Реализован пока не во всех наследниках.
- Добавлен атрибут DisplayNameAttribute, может приписываться к классам.
- В SerializableAbstract добавлено свойство TypeName, выдающее либо значение атрибута DisplayName, если он есть, либо полное имя типа.
- В генератор кода по схемам добавлена обработка свойства DisplayName для типов и полей.
- В PropertyInfo добавлено поле, хранящее DisplayName, а в конструкторы данного класса и всех наследников добавлен параметр, задающий это поле.
- В Utility добавлен метод GetTypeName.
- Всем оставшимся наследникам PropertyInfo добавлена реализация метода GetView.
- Всем типам во всех схемах добавлено отображаемое имя.