Пытаюсь писать бьендогайд, буду лить сюда.
Бьендгайд от Дервена
Часть 1
В языке DM(dream maker) все объекты, что мы создаем делятся на две важные части:
1. datum — их нельзя поставить на карту
2. atom — их можно поставить на карту
atom —аббревиатура, расшифровывается как area turf object mob, это значит что ты пидар что все перечисленные в ней типы являются подтипами atom, и их можно ставить на карту. У каждого объекта могут быть свои методы(proc), свойства(var) независимо от того, является ли он атомом или датумом. Но пока рано переходить к этому, важно запомнить, что бьенд учитывает отступы и они играют определенное значение!
Например, если мы напишем:
То мы создадим объект vasya, который является подтипом obj. Таким образом благодаря табуляции мы помогли дрим мейкеру правильно понять иерархию объектов, что и к чему относится.
Теперь поговорим о методах и свойствах. Если говорить простыми словами, то методы — это те действия, которые может выполнить объект. Свойства — это переменные, которые говорят нам о каких-то показателях (здоровье, инвентарь), важно понять, что свойством может быть и другой объект, например, перчатка на нашем персонаже. Также у всех объектов есть встроенные методы и свойства. Чтобы проиллюстрировать все это я приведу пример:
У цверкуни, как и у всех объектов есть встроенное свойства luminosity, оно освещает столько тайлов, сколько мы укажем. При значении равном 0, ничего не будет светится. Также мы объявили переменную и определили её значение, так как мы поставили количество табуляций ровно на 1 больше, чем у cverkun данные свойства принадлежат именно к этому объекту и его подтипам. Также мы создали для cverkun метод(proc), который заставляет наш объект светиться на 1 тайл и записывает ему в message ‘я свечусь’
Как же нам задействовать то, что мы написали? Вариантов много, например мы можем использовать конструктор New() в качестве команды, с которой начнет свое выполнение наш метод cverkun.
То есть теперь, если мы поместим наш объект на карту, то при его создании дрим мейкер должен будет выполнить все то, что мы прописали под New().

