Версия 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.