Объектно ориентированные функции и свойства

Объектно ориентированное программирование для разработки сценариев квестов

Функция
Описание

class className : Class1, Class2, ... { }

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

new className(param1, param2, ...)

Создает и возвращает экземпляр (объект) класса className . Конструктору класса может быть передано ноль или более параметров (в зависимости от определений параметров конструктора класса).

variable.Properties

Возвращает список всех свойств, которые реализует эта переменная.

variable.Size

Возвращает либо количество элементов в массиве, если переменная имеет тип ARRAY, либо количество символов в строковом представлении этой переменной.

variable.Type

Возвращает тип этой переменной (например, NONE, STRING, NUMBER, ARRAY, OBJECT).

variable.EmptyOrWhite

Возвращает true тогда и только тогда, когда базовая строка пуста или содержит только пробелы.

variable.Add(value)

Добавляет передаваемое значение к базовому массиву или к внутреннему строковому представлению.

variable.Remove(item)

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

variable.RemoveAt(index)

Если переменная является массивом, удаляется указанная запись с этим индексом. Возвращает количество удаленных записей.

variable.Contains(value)

Если переменная представляет собой список, возвращает, содержит ли она это значение. В противном случае преобразует текущую переменную в строку и возвращает, содержит ли она переданное значение.

variable.StartsWith(value)

Начинается ли переменная, преобразованная в строку, с этого значения.

variable.EndsWith(value)

Заканчивается ли переменная, преобразованная в строку, этим значением.

variable.Replace(oldValue, newValue)

Заменяет старое значение на новое значение.

variable.ReplaceAndTrim(oldValue1, newValue1, oldValue2, newValue2, ... )

Заменяет все oldValueX соответствующим newValueX. Возвращает строку без начальных и завершающих пробелов.

variable.IndexOf(value, from=0)

Возвращает индекс значения в переменной (-1, если не найдено).

variable.Join(sep=" ")

Преобразует список в строку на основе символа разделения строк.

variable.First

Возвращает первый символ этой строки или первого элемента списка.

variable.Last

Возвращает последний символ этой строки или последнего элемента списка.

variable.Keys

Если базовая переменная является словарем, возвращает все ключи словаря.

variable.Substring(value, from, size)

Возвращает подстроку заданной строки.

variable.Split(sep=" ")

Возвращает новый список на основе символа разделения строк.

variable.Trim()

Возвращает новую переменную без начальных или завершающих пробелов.

variable.Lower()

Возвращает новую переменную, преобразованную в нижний регистр.

variable.Upper()

Возвращает новую переменную, преобразованную в верхний регистр.

variable.Sort()

Сортирует базовый массив.

variable.Reverse()

Изменяет содержимое базового массива или строки на противоположное.

Примеры

class Stuff1 
{
  x = 2;
  Stuff1(a) 
  {
    x = a;
  }
   
  function AddStuff1(n) 
  {
    return n + x;
  }
}

class Stuff2 
{
  y = 3;
  
  Stuff2(b) 
  {
    y = b;
  } 
  
  function AddStuff2(n) 
  {
    return n + y;
  }
}

class CoolStuff : Stuff1, Stuff2 
{
  z = 3;
  
  CoolStuff(a, b, c) 
  {
    x = a;
    y = b;
    z = c;
  } 
  
  function AddCoolStuff() 
  {
    return x + addStuff2(z);
  }
}

addition = 100;
obj1 = new Stuff1(10);
print(obj1.x); // prints 10
print(obj1.AddStuff1(addition); // prints 110

obj2 = new Stuff2(20);
print(obj2.y); // prints 20 
print(obj2.AddStuff2(addition)); // prints 120

newObj = new CoolStuff(11, 13, 17);
print(newObj.AddCoolStuff()); // prints 41
print(newObj.AddStuff1(addition)); // prints 111
print(newObj.AddStuff2(addition)); // prints 113

Last updated