Game

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

Хэш, содержащий все ваши постройки с их ID в качестве хэш-ключей.

Объект, содержащий сведения об использовании ЦП со следующими свойствами:

 tickLimit
 bucket
 shardLimits

Хэш, содержащий всех ваших крипов с их именами в качестве хэш-ключей.

Пример:

```
for(const i in Game.creeps) {
   Game.creeps[i].moveTo(flag);
}

```

Хэш, содержащий все ваши флаги с их именами в качестве хэш-ключей.

Пример:

```
creep.moveTo(Game.flags.Flag1);

```

Ваш глобальный уровень управления.

Объект со следующими свойствами:

 progress
 progressTotal

Глобальный объект, представляющий карту мира.

Глобальный объект, представляющий внутриигровой рынок (магазин).

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

### Game.rooms

*object<string, Room>*

Хэш, содержащий все доступные вам комнаты с именами комнат в качестве хэш-ключей. Комната видна, если у вас в ней есть крип или принадлежащая вам структура.

### Game.shard

*object*

Объект, описывающий сегмент мира (шард), в котором в данный момент выполняется сценарий.

 type
 ptr

### Game.spawns

*object<string, StructureSpawn>*

Хэш, содержащий все ваши спавны с их именами в качестве хэш-ключей.

### Game.structures

*object<string, Structure>*

Хэш, содержащий все ваши структуры с идентификатором структуры в качестве хэш-ключей.

### Game.time

*number*

Системный счетчик игровых тиков. Он автоматически увеличивается на каждом ТИКе.

Пример:

```
console.log(Game.time);

```

## Свойства

### Game.cpu.getHeapStatistics()

Этот метод доступен только в том случае, если для виртуальной машины установлено значение «Изолированный» в настройках среды выполнения вашей учетной записи.

### Game.cpu.getUsed()

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

Пример:

```
if(Game.cpu.getUsed() > Game.cpu.tickLimit / 2) {
    console.log("Уже используется половина ЦП!");
}

```

```
for(const name in Game.creeps) {
    const startCpu = Game.cpu.getUsed();

    // creep logic goes here

    const elapsed = Game.cpu.getUsed() - startCpu;
    console.log('Крип '+name+' уже использовал '+elapsed+' времени ЦП');
}

```

### Game.cpu.setShardLimits(limits)

Выделение лимитов ЦП для различных шардов. Общее количество процессора должно оставаться равным "Game.cpu.shardLimits". Этот метод можно использовать только раз в 12 часов.

Возвращаемые значения
 ERR\_BUSY
 ERR\_INVALID\_ARGS

### Пример:

```
Game.cpu.setShardLimits({shard0: 20, shard1: 10});

```

### Game.getObjectById(id)

Получить объект с указанным уникальным ID. Это может быть игровой объект любого типа. Вам могут быть доступны лишь объекты в тех комнатах, которые вам видны.

Возвращает экземпляр объекта или "null", если его не удается найти.

Пример:

```
creep.memory.sourceId = creep.pos.findClosestByRange(FIND_SOURCES).id;
const source = Game.getObjectById(creep.memory.sourceId);

```

### Game.notify(message, [groupInterval])

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

 groupInterval

Примеры:

```
if(creep.hits < creep.memory.lastHits) {
    Game.notify('Крип '+creep+' был атакован в '+creep.pos+'!');
}
creep.memory.lastHits = creep.hits;
if(Game.spawns['Spawn1'].energy == 0) {
    Game.notify(
        'В Spawn1 закончилась энергия',
        180  // группировка уведомлений в 3 часа
    );
}

```