Virtual Laboratory Wiki
Advertisement

Базовые классы организмов[]

Класс - Organism (Организм)[]

Класс Organism (Организм) является базовым классом для классов Animal/Plant (Животное/Растение). Он содержит функциональные возможности, общие для классов Animal и Plant.

Класс - Plant (Растение)[]

Это базовый класс, используемый любыми существами, которые хотят перейти в вид растений (Plant). Данный класс содержит все методы, определяющие действия и модели поведения растений.

Класс - Animal (Животное)[]

Это исходный класс для производных при создании животного.

Класс - Action (Действие)[]

Этот класс определяет общие свойства для всех команд/действий, которые можно назначить существу. Сюда входят перемещение, воспроизводство, питание, нападения и т.д.

Класс - EngineSettings (Настройки среды)[]

EngineSettings содержит различные константы, влияющие на среду игры, атрибуты существ и рассчитанные значения для Terrarium. Можно использовать эти значения для принятия решений или расчета собственных новых значений для существ. Однако они не должны противоречить законам физики или биологии Terrarium.

Вспомагательные классы[]

Класс - LoadEventArgs[]

Специальный объект, используемый для хранения аргументов, передаваемых делегату LoadEventHandler. В настоящее время существам, использующим этот объект, не передается какая-либо информация.

Делегат - LoadEventHandler[]

Описание делегата, необходимого для перехвата события Load существа. Отправителем всегда будет собственное существо, а LoadEventArgs будет содержать информацию, с помощью которой можно обработать ход существа.

Класс - IdleEventArgs[]

Специальный объект, используемый для хранения аргументов, передаваемых делегату IdleEventHandler. В настоящее время существам, использующим этот объект, не передается какая-либо информация.


Делегат - IdleEventHandler[]

Описание делегата, необходимого для перехвата события Idle существа. Отправителем всегда будет данное существо, а IdleEventArgs будет содержать информацию, с помощью которой можно обработать ход существа.

Перечисление - PopulationChangeReason[]

Описывает причину смерти существа.

Значения:

  • Error - Для существа было сгенерировано исключение, и его функционирование было приостановлено.
  • Killed - Существо погибло при нападении другого существа.
  • NotDead - Существо еще не умерло. Возвращается всеми существами, живущими в террариуме, и является символом-заполнителем для представления живого состояния.
  • OldAge - Существо умерло от старости. Это происходит при истечении времени продолжительности жизни существа.
  • SecurityViolation - Существо выполнило действие, нарушившее безопасность террариума.
  • Sick - Существо еще не умерло. Возвращается всеми существами, живущими в террариуме, и является символом-заполнителем для представления живого состояния.
  • Starved - Существо умерло от голода. Если у существа заканчивается энергия, оно считается умирающим от голода.
  • Timeout - Срок существования существа полностью исчерпан, и время его жизни закончилось.

Класс - TeleportedEventArgs[]

Специальный объект, используемый для хранения аргументов, передаваемых делегату TeleportedEventHandler. В настоящее время после телепортации информация существу не передается.

Метод - TeleportedEventArgs.String ToString[]

Используется для получения строковой информации об аргументах данного события, применяемой при отладке.

Возвращаемое значение: System.String, содержащее значение '#Teleported'

Делегат - TeleportedEventHandler[]

Описание делегат, необходимого для перехвата события Teleported существа. Отправителем всегда будет собственное существо, а TeleportedEventArgs будет содержать информацию, с помощью которой можно обработать ход существа.

Это событие может быть запущено каждый раз при телепортации существа внутри террариума, либо другому сетевому партнеру. Можно использовать для определения необходимости сброса и повторной инициализации значений, относящихся к “особому миру”.

Делегат - TraceEventHandler[]

Только для использования в системе.

Интерфейсы[]

Интерфейс - ISpecies[]

В этом интерфейсе содержится вся информация, относящаяся к видам, - общая как для растений, так и животных. Разработчики существ могут получить всю информацию, воспользовавшись свойством Species объекта OrganismState.

Вся информация о видах является постоянной. Виды существ представляют основные особенности, такие как MatureSize существа, время между моментами роста и продолжительность жизни.

Метод - ISpecies.Boolean IsSameSpecies(ISpecies)[]

Используется для определения принадлежности существа с информацией Species к виду другого существа с информацией Species. Метод удобен для оценки и запоминания силы/слабости других существ.

Параметры:

  • species Интерфейс ISpecies существа для сравнения с этим существом.

Возвращаемое значение: True, если информация о видах совпадает, в противном случае - False.

Свойство - ISpecies.Int32 GrowthWait { get; }[]

Количество времени во временных интервалах игры, которое существо должно выждать до вырастания в размере на одну единицу размеров. Начальное свойство GrowthWait определено таким образом, что существо достигнет максимального размера или MatureRadius по истечении половины продолжительности жизни.

С каждым временным интервалом GrowthWait будет понижаться на одну единицу. По достижении GrowthWait 0 существо будет расти при соблюдении всех требований роста. Рост происходит автоматически все время, пока соблюдаются требования роста.

Возвращаемое значение: System.Int32, представляющее число временных интервалов до того, как существо сможет расти.

Свойство - ISpecies.Int32 LifeSpan { get; }[]

Количество времени во временных интервалах, в течение которого существо может жить. Пройдя всю продолжительность жизни своего вида, существо умирает по причине PopulationChangeReason.OldAge.

Возвращаемое значение: System.Int32, представляющее число временных интервалов, в течение которого существо может жить.

Свойство - ISpecies.Int32 MatureRadius { get; }[]

Максимальные размеры (радиус), до которых может вырасти существо после достижения взрослого состояния. По достижении существом взрослого состояния оно может совершать дополнительные действия, такие, как воспроизводство, в то время как некоторые действия (например, рост) для него уже недоступны.

Возвращаемое значение: System.Int32, представляющее размеры полноценного взрослого существа.

Свойство - ISpecies.Int32 MaximumEnergyPerUnitRadius { get; }[]

Максимальное количество энергии, которую существо может сохранить для каждой единицы размеров, которых оно достигло. Это позволяет крупным существам сохранять больше энергии, чем существам небольших размеров.

Возвращаемое значение: System.Int32, представляющее максимальное количество энергии, которое существо может сохранить на единицу размеров.

Свойство - ISpecies.Int32 ReproductionWait { get; }[]

Количество времени во временных интервалах, которые существо должно выждать между процессами воспроизводства. Обычно в течение жизни существа воспроизводятся несколько раз, поэтому для определения максимального числа актов воспроизводства применяется временной предел между воспроизводством и продолжительностью жизни существа.

С каждым временным интервалом ReproductionWait будет понижаться на одну единицу. По достижении ReproductionWait нулевого значения будет удовлетворено одно из требований - свойство CanReproduce. Как только существо станет способно размножаться, необходимо вызвать BeginReproduction для начала инкубационного периода.

Возвращаемое значение: System.Int32, представляющее число временных интервалов между воспроизводством.

Свойство - ISpecies.String Skin { get; }[]

Возвращает скин, в котором существо будет отображаться в Terrarium.

Возвращаемое значение: System.String, идентифицирующее скин существа.

Интерфейс - IPlantSpecies[]

Информация о свойствах видов, применимых только к растениям (также необходимы для разработчиков). Этот класс используется для получения общей информации о возможностях того или иного вида растений.

Свойство - IPlantSpecies.PlantSkinFamilyEnum SkinFamily { get; }[]

Возвращает SkinFamily, которое растение будет использовать в Terrarium.

Возвращаемое значение: System.String, обозначающий семейство скинов для растения.


Интерфейс - IAnimalSpecies[]

Информация о свойствах видов, применимых только к животным (также необходимы для разработчиков). Этот класс используется для получения общей информации о возможностях того или иного вида животных.

Свойство - IAnimalSpecies.Int32 EatingSpeedPerUnitRadius { get; }[]

Количество пищи, которое существо может съесть за один временной интервал /на одну единицу размеров. Это означает, что крупные существа могут съесть за один временной интервал больше пищи, чем существа небольших размеров.

Возвращаемое значение: System.Int32, представляющее количество пищи, которое существо может съесть за один временной интервал/на одну единицу размеров.

Свойство - IAnimalSpecies.Int32 EyesightRadius { get; }[]

Расстояние, на которое существо может видеть. Используется для определения видимой области при вызове метода Scan.

Возвращаемое значение: System.Int32, представляющее расстояние, на которое существо может видеть.

Свойство - IAnimalSpecies.Int32 InvisibleOdds { get; }[]

Возможность того, что существо будет невидимым для другого существа, использующего метод Scan.

Возвращаемое значение: System.Int32, представляющее существу возможность стать невидимым.

Свойство - IAnimalSpecies.Boolean IsCarnivore { get; }[]

Определяет, является ли существо хищником.

Возвращаемое значение: True, если существо является хищником, в противном случае - False.

Свойство - IAnimalSpecies.Int32 MaximumAttackDamagePerUnitRadius { get; }[]

Максимальное количество повреждений, которое может нанести существо за один временной интервал/на одну единицу размеров. Означает, что нападения крупных существ могут причинить больше вреда за один временной интервал, чем нападения существ небольших размеров.

Возвращаемое значение: System.Int32, представляющее максимальные повреждения, которые можно нанести на единицу размеров.

Свойство - IAnimalSpecies.Int32 MaximumDefendDamagePerUnitRadius { get; }[]

Максимальное количество повреждений, которое может выдержать существо за один временной интервал/на одну единицу размеров. Это означает, что крупные существа за один временной интервал смогут защититься от повреждений лучше, чем существа небольших размеров.

Возвращаемое значение: System.Int32, представляющее максимальное количество повреждений, которые существо может выдержать на единицу размеров.

Свойство - IAnimalSpecies.Int32 MaximumSpeed { get; }[]

Максимальная скорость, с которой существо может перемещаться.

Возвращаемое значение: System.Int32, представляющее максимальное значение скорости, с которой существо может перемещаться.

Свойство - IAnimalSpecies.AnimalSkinFamilyEnum SkinFamily { get; }[]

Возвращает SkinFamily, которое существо будет использовать в Terrarium.

Возвращаемое значение: System.String, идентифицирующее семейство скинов существа.

Атрибуты[]

  • OrganismClassAttribute - этот атрибут должен присутствовать у всех существ для определения имени класса сборки, являющегося производным из Plant или Animal, и содержащего код для функционирования существа. Этот атрибут необходим при сборке каждого существа, и при попытке представить существо без него будет сгенерирована ошибка времени загрузки.
  • AuthorInformationAttribute - этот атрибут должен присутствовать у всех существ, чтобы можно было определить автора существа при участии в состязаниях. Сюда входит как имя автора, так и адрес электронной почты. Имя автора будет использоваться на страницах рейтингов и в списках лучших, а адрес электронной почты предназначен для разработчиков Terrarium для контакта с пользователями с целью раздачи призов.
  • CamouflagePointsAttribute - определяет легкость обнаружения данного животного другими животными.
  • CarnivoreAttribute - выбор плотоядности (true)/травоядности (false) животного.
  • EyesightPointsAttribute - определяет остроту зрения данного животного.
  • MarkingColor - определяет цвет (значение из перечисления System.Drawing.KnownColor), используемый для определенной окраски существа.
  • MatureSize - определяет размер взрослого организма (от 25 до 48).
  • MaximumEnergyPoints - пункты, примененные к атрибуту MaximumEnergyPoints, определяют, сколько энергии создаваемое животное может сохранить, т.е. определяется необходимая частота приемов животным пищи.
  • MaximumSpeedPointsAttribute - определяет максимальную скорость перемещения животного.
  • SeedSpreadDistanceAttribute - радиус разброса семян растения (обязателен для растений).

Исключения[]

  • GameEngineException - Базовый класс для всех исключений, которые вызываются игрой для существа.
  • OrganismException - Базовый класс для всех исключений, которые генерируются игрой для существ.
  • AlreadyFullException - Животное употребило достаточное количество пищи, поэтому данное действие не имеет смысла.
  • AlreadyReproducingException - Воспроизводство можно осуществлять только по окончании текущего процесса воспроизводства.
  • ImproperFoodException - Существо произвело попытку употребить неподходящую пищу: хищники должны есть мясо, а травоядные животные - растения.
  • IsDeadException - Больше не используется, но оставлен для совместимости. В дальнейшем будет удален.
  • NotDeadException - В качестве еды может использоваться только мертвое животное.
  • NotEnoughEnergyException - Недостаточно энергии на выполнение этого действия.
  • NotHungryException - Существу необходимо быть голодным (т.е. уровень энергии – Normal или Deterioration) для выполнения этого действия.
  • NotMatureException - Воспроизводиться могут только взрослые существа.
  • NotReadyToReproduceException - Прошло недостаточно времени с момента последнего воспроизводства.
  • NotVisibleException - Создаваемое существо произвело попытку выполнить действие в отношении другого существа, невидимого для него.
  • NotWithinDistanceException - Целевое существо находится слишком далеко для выполнения требуемого действия.
  • OutOfBoundsException - Была произведена попытка переместиться в позицию, выходящую за границы мира.
  • TooFastException - Данный организм не может двигаться с этой скоростью.
  • SizeOutOfRangeCharacteristicException - [В разработке]
  • TooManyPointsException - [В разработке]
  • TooManyPointsOnOneCharacteristicException - [В разработке]

Ссылки[]

Advertisement