Версия 3.1.0
04.11.2007
- В EchoBuilder реорганизованы все имена методов.
- Исправлена ошибка в Position.BuildLookStart.
- В методе AbstractCharacter.Echo сделан вызов базовой реализации, рассылающей Echo всему вложенному.
- В Position добавлены методы: CanGo, TestGo, GetGoForward, GetGoBackward, BuildGoForward, BuildGoBackward.
- Команда "идти" переделана под новый способ генерации шаблонов.
05.11.2007
- Реорганизован класс ScriptEngine, добавлен файл основного скриптового модуля, поправлена работа скриптовой консоли.
- Исправлен формат вывода даты в команде "время".
- Добавлена цветовая раскраска скриптового кода.
06.11.2007
- Добавлен тип RequestStatus.
- Добавлен класс RequestAction и некоторые его потомки
- В классе Request: свойство Done заменено на Status, добавлено свойство Readers, тип свойства From изменен на NerealAbstract, добавлены методы StateFor и MarkAsRead, метод Look переименов в Read, добавлено свойство Actions.
- В контекст просмотра заявок добавлена возможность перемещения заявки и изменения статуса заявки.
- Добавлено уведомление о заявках при входе персонажа.
- В Role метод CompareTo переименован в Equals.
- Исправлена доступность контейнера при нахождении на нем.
- Исправлено сообщение о попытке надеть на несуществующий слот.
- Добавлен тип локаций Room
- В LocationType добавлены вирт.свойства NeedWeather и IsOpen.
- В Location добавлен метод LookWeather.
- Добавлен флаг EchoFlag.Recurse - только при нем Echo у персонажа передает текст и всему в него вложенному. Echo любого класса кроме персонажа включает флаг автоматически.
- В NerealAbstract свойства Weight, Size и Volume сделаны read-write вместо read-only.
- В Location реализована запись в свойство Size.
07.11.2007
- Добавлена роль "скрипт-мастер" - кому доступна скриптовая консоль и работа с иными скриптами.
- Добавлен вариант команды "!упр обновление".
- Шелл-скрипт run.sh доработан на автоматический перезапуск при закрытии сервера с кодом обновления.
- Добавлен класс Graveyard.
- В World добавлены методы DeleteCharacter и GetGraveyard.
- Добавлена команда "удалиться".
- В TextBlock добавлен метод Add.
- При возникновении ошибок в командах и контекстах, они направляются в заявки вместо системного лога.
- При отмене редактирования заявки, контекст написания заявки тоже отменяется.
- В NerealAbstract добавлен вирт.метод Normalize. В AbstractCharacter он устанавливает стандартное положение, а в Item - снимает предмет с слота, если тот надет.
- При удалении персонажа все что было у него и на нем, оказывается на его месте.
- В скриптовую консоль добавлен перехват всех обычных ошибок.
08.11.2007
- Класс TextBlock переименован в Text и перенесен в файл SimpleTypes.
- В разговорных командах исправлены некоторые опечатки.
- В BaseState добавлен метод BaseReturn. В State<T> он перекрыт, и добавлен метод Return.
- В BaseContext метод Return по умолчанию вызывает одноименный метод из текущего State.
- Добавлена роль "строитель".
- Добавлена заготовка контекста выбора зоны (SelectZoneContext).
11.11.2007
- В ScriptEngine добавлен метод GetNewConsole, возвращающий объект консоли со своим локальным словарем. Работа скриптовой консоли переделана на его использование.
17.11.2007
- Реализован контекст выбора зоны, и в нем же свойство Zone переименовано в SelectedZone.
- В NerealAbstract добавлено свойство FullName.
- При ошибке в обработке пульса теперь просто пишется в лог, не закрывая сервер.
18.11.2007
- Доработана скриптовая консоль.
22.11.2007
- В Launcher добавлена проверка на запрет повторных запусков.
- При помещении персонажа на кладбище, его обработка отключается.
25.11.2007
- В Utility добавлен метод CanConvertFromString.
- В InputArgs удалены методы GetInt и GetDouble, а вместо них добавлены generic-методы: IsType, AsType, GetAsType.
- Все контексты и команды адаптированы на использование новых методов класса InputArgs.
- В NerealAbstract добавлен метод FindPath.
- Немного доработан SelectZoneContext.
26.11.2007
- В Zone добавлены методы CanBuild и CanSuperBuild.
- В SelectZoneContext в списке зон добавлен вывод идентификатора.
- Добавлены типы StringList и NamesList.
- В Character добавлено свойство PseudoNames - список имен.
- Добавлена заготовка команды "псевдонимы".
- Добавлен метод Help.MakeSeeAlso.
- Добавлен контекст NamesEditorContext.
- Ввод имени в контексте регистрации переделан на использование NamesEditorContext.
27.11.2007
- Исправлено название состояния RegisterNameNominative на RegisterName.
- Добавлен класс NamesEditorQuestions - набор строк-вопросов для ввода имени/названия.
- Доделан контекст NamesEditorContext.
- Доделана команда "псевдонимы".
- Добавлены классы: Memory, MemoryEntry, CharacterMemoryEntry.
- В Character добавлено свойство Memory - память персонажа.
- Видимое имя другого персонажа ищется в памяти того, кто смотрит. Если его там нет, то видимое имя берется по расе.
- В Names добавлено статическое свойство Self - возвратные местоимения на любой род.
- В Names добавлен метод IsFullAlias.
- Добавлены команды "представить" и "представиться".
- Добавлен источник EntitySource.AllRecurse.
- В Character добавлен метод KnowAs.
29.11.2007
- В методе Utility.ConvertFromString добавлены перехват ошибок конвертации и выдача значения по умолчанию в случае оных.
- В Character метод KnowAs вынесен в качестве виртуального в AbstractCharacter.
- В Character добавлено свойство RaceName.
- В командах "смотреть" и "кто" добавлены пометки TODO на обращение к титулу.
30.11.2007
- В Item добавлен перекрытый метод LookAs.
- В методе NerealAbstract.FindEntity добавлена обработка числа-индекса в начале алиаса. При его наличии находит объект с указанным индексом, а не первый.
- Добавлены классы: Image, ImageMemoryEntry.
- В Memory добавлено свойство Images.
- В Memory добавлены методы: RememberImage, ForgetImage, FindImage.
- В NerealAbstract добавлены виртуальные методы: CreateImageCopy, CreateImageExtra.
- В Character частично реализованы методы создания образа.
- Добавлен метод Utility.EchoHandler, куда перенесена вся обработка шаблонов из AbstractCharacter.Echo.
- В методе NerealClient.Echo параметр EchoFlag flags заменен на bool flush, а обработка флагов перенесена в метод Utility.EchoHandler.
- В методе NerealClient.Echo удален параметр byte defcolor, его обработка перенесена в метод Utility.EchoHandler. Там же добавлена "упаковка" рядом стоящих цветовых кодов.
- Методы Utility.EchoHandler размножены для возможности неполного указания параметров.
- В AbstractCharacter добавлен метод DirectEcho - отправка текста без шаблонной обработки.
- В NerealAbstract добавлен метод GetEquipmentString, куда перенесен код из метода Look.LookEquipment.
- Методы CreateImageCopy и CreateImageExtra переименованы в GetImageCopy и GetImageExtra.
- В Memory метод RememberImage переименован в Remember, и принимает только готовый Image.
- В Image свойство Extra изменено на тип string.
- В ProcessRegistrator добавлено копирование списков перед их обработкой, для исключения проблем с нарушением итератора.
01.12.2007
- В Item и Location реализованы методы GetImageCopy и GetImageExtra.
- Добавлена команда "запомнить".
- Свойство ImageName класса Image перенесено в свойство Name класса ImageMemoryEntry - название образа не является частью образа, но является его ярлычком в памяти.
03.12.2007
- В NerealClient.Echo добавлена обработка и нормализация символов окончаний строк.
- Метод Utility.EchoHandler разбит на три метода: поиск шаблонов, обработка аргументов, обработка цветов. Добавлен специальный цветовой код возврата к предыдущему цвету.
- В скриптовой функции colorize исправлена ошибка и добавлено эскапирование символа '$'.
- Исправлены ошибки в методе Utility.NormalizeColors.
- В команде "представить" шаблон сделан подобен речевому.
- Большинство цветовых кодов $@ заменено на коды $#.
- В Character удалено свойство Title.
- Добавлены классы: TitleCollection, TitleCollectionItem.
- В World добавлено свойство Titles.
- В Names добавлен метод GetHashCode.
04.12.2007
- В Character добавлен метод TitleFor.
- В командах "смотреть" и "кто" исправлен вывод титула.
- Временно сделано, что персонаж не видит других оффлайновых персонажей.
- Добавлена роль "титул-мастер". Команда "титул" доступна только ей.
- В Names добавлен статический метод IsAlias.
- В TitleCollection добавлены методы GetTitles и Sort.
- Добавлен контекст TitleControlContext.
- В TitleCollection: изменен метод GetTitle, расширен метод Remove, добавлен метод Find.
- В Names добавлен статический метод GenderByAlias.
- Завершена новая команда "титул".
06.12.2007
- Файл Nereal/Static/Data.cs разделен на несколько отдельных файлов.
- Добавлены классы: VisionType, VisionTypes, VisionRange, VisionRanges.
- Добавлен файл статических данных - visions.xml.
- В Race добавлено свойство Visions.
- В NerealAbstract добавлены виртуальные методы: GetVisibilityRanges, GetSensibilityRanges, GetPrimalSensibility.
- В Character добавлены несохраняемые свойства: visibility, sensibility.
- В Character добавлены перекрытые методы: GetVisibilityRanges, GetSensibilityRanges, GetPrimalSensibility.
- В Character добавлены методы: UpdateVisibility, UpdateSensibility. Оба помечены как TODO.
- Два метода (GetSensibilityRanges и GetPrimalSensibility) заменены на один GetSensibility.
- В VisionRanges свойство PrimalType переименовано в Primary.
- В VisionRanges добавлены методы GetRange и IsPrimary.
- В NerealAbstract добавлен метод VisibilityFor - вычисление уровня видимости чувствами указанной в параметре абстракции-датчика.
07.12.2007
- Добавлена группа методов Utility.GetStringSelect - выбор подстроки по ее номеру.
- Исправлено создание текста сообщения в команде "представить".
- Удалены классы VisionType и VisionTypes. Добавлен перечислимый тип VisionType. Удален файл статических данных visions. В VisionRange свойство VType переименовано в Vision.
- В NerealAbstract добавлен виртуальный метод GetUniqueLevelFor - запрос уровня уникальности для данного наблюдателя в данном типе обнаружения.
- В NerealAbstract доработан метод VisibilityFor, куда добавлен параметр unique.
- В Character перекрыт метод GetUniqueLevelFor и добавлен метод GetUniqueOpticLevelFor.
- В ItemSlot добавлено свойство UniqueLevel.
08.12.2007
- Добавлен метод Utility.GetStringSelectCount.
- Исправлен выбор окончаний по роду.
- В Location добавлено свойство SunLuminosity.
- В NerealAbstract добавлено виртуальное свойство Luminosity, по умолчанию выдающее значение родительского свойства, либо 0.
- В Location перекрыто свойство Luminosity, выдающее значение SunLuminosity.
- В Container перекрыто свойство Luminosity, выдающее родительское значение, уменьшенное в зависимости от закрытости и прозрачности контейнера.
- В VisionRange добавлен метод SetRangeByPoint.
- В Character: удалено поле visibility, удален метод UpdateVisibility, в методе GetVisibilityRanges добавлено вычисление и возврат видимости в оптическом типе.
- Добавлен статический класс FormulaConstants, содержащий разные константы, используемые в формулах. Кандидат на будущий перенос в конфиг мира.
- В NerealAbstract метод CanSee изменен на использование VisibilityFor.
- В Location и Item перекрыты методы GetVisibilityRanges.
11.12.2007
- Добавлен перечислимый тип IdentificationLevel - уровень идентификации (никакой, частичный, полный).
- В NerealAbstract добавлен метод IdentificationLevelFor.
- В Character метод LookAs доработан до использования IdentificationLevelFor.
- В Character добавлен метод GetAcquaintance.
- В AbstractCharacter и Character добавлен метод GetAcquaintanceLevel.