# Контракты городов

Городской контракт позволяет вашему городу выставить задачу для других игроков и городов. После успешного выполнения и проверки такой контракт может принести контрактные очки.

{% hint style="info" %}
Создавать городской контракт могут только владелец города или его заместитель.
{% endhint %}

{% hint style="warning" %}
Контракт создаётся только из города. Если игрок не состоит в городе, плагин не даст открыть городской черновик.
{% endhint %}

## Что понадобится заранее

* Поставленная табличка в городе
* Понятная задача, которую можно проверить
* Описание условий в книге
* Понимание, куда и как сдаётся результат

<details>

<summary>Что стоит продумать до публикации</summary>

* Какой именно результат считается готовым
* Кто будет проверять выполнение от лица города
* Есть ли ограничения по материалам, месту или стилю
* Можно ли проверить объём работы без споров

</details>

## Шаг 1. Заполните табличку

Для создания обычного городского контракта заполните табличку так. На скриншоте ниже показан пример правильного заполнения:

{% code title="Пример таблички" %}

```
Ресурсы
Сложность C
[Contract]
5ч
```

{% endcode %}

![Пример заполненной таблички](https://3656319964-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOrk2Z77YIG0sJsPqwxF7%2Fuploads%2Fgit-blob-7a83f8aefeac50ea6b2a0215bd73b4926ed8ef97%2Fcontract-sign-image.png?alt=media)

Расшифровка строк:

1. Первая строка: тип контракта.
2. Вторая строка: `Сложность <ранг>`.
3. Третья строка: маркер `[Contract]`.
4. Четвёртая строка: срок выполнения, например `5ч` или `7d` (минимум 1ч, максимум 30д).

После создания контракта плагин заменит 4-ю строку на статус черновика и сохранит срок внутри контракта.

Допустимые типы:

* `Ресурсы`
* `Постройка`
* `Помощь`
* `Ферма`
* `Ландшафт`
* `Картография`
* `Мапарты`

Допустимые ранги сложности:

* `E`
* `D`
* `C`
* `B`
* `A`
* `S`

{% hint style="success" %}
После успешного создания табличка превращается в черновик, а автор получает книгу для заполнения условий контракта.
{% endhint %}

## Как работает ценность контракта

Сложность на табличке определяет сразу две вещи:

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

Это важно: чем выше ранг, тем "дороже" контракт для города. Поэтому не стоит ставить высокий ранг просто для красоты.

{% columns %}
{% column %}
**Стоимость для бюджета публикации**

* `E` -> 1
* `D` -> 1
* `C` -> 2
* `B` -> 3
* `A` -> 5
* `S` -> 8
  {% endcolumn %}

{% column %}
**Диапазон итоговой награды**

* `E` -> 8-15 очков
* `D` -> 15-30 очков
* `C` -> 30-45 очков
* `B` -> 45-60 очков
* `A` -> 60-80 очков
* `S` -> 80-100 очков
  {% endcolumn %}
  {% endcolumns %}

{% hint style="warning" %}
Если у города не хватает бюджета публикации по сложности, черновик не получится опубликовать, даже если табличка и книга заполнены правильно.
{% endhint %}

Дополнительно стоит помнить:

* бюджет публикации и бюджет взятия считаются отдельно;
* окно бюджета сейчас считается по 7 дням;
* по умолчанию город может потратить до 40 очков сложности на публикацию и до 32 очков сложности на взятие контрактов;
* посмотреть текущий бюджет своего города можно через `/contract town budget`.

## Шаг 2. Заполните книгу черновика

После создания черновика плагин выдаёт книгу-перо. Откройте её ПКМ и подробно опишите контракт.

Лучше всего указать:

* что именно нужно сделать;
* какой объём работы ожидается;
* какие материалы, формат или ограничения важны;
* куда сдавать результат;
* как город будет принимать работу.

{% stepper %}
{% step %}

#### Откройте книгу

После создания черновика книга появляется в инвентаре. Если инвентарь полон, сначала освободите слот и откройте черновик снова.
{% endstep %}

{% step %}

#### Опишите задачу без двусмысленности

Пишите так, чтобы исполнитель и город одинаково понимали объём, формат результата и критерий приёмки.
{% endstep %}

{% step %}

#### Проверьте, можно ли выполнить и проверить контракт

Если проверка будет зависеть только от устных договорённостей, лучше уточнить условия до публикации.
{% endstep %}
{% endstepper %}

{% hint style="info" %}
У черновика есть таймер бездействия. Если слишком долго ничего не делать, он истечёт до публикации.
{% endhint %}

## Шаг 3. Опубликуйте черновик

Когда описание готово, выполните:

{% code title="Публикация" %}

```
/contract draft publish <id>
```

{% endcode %}

Если ID забыли, сначала посмотрите список своих черновиков:

{% code title="Список черновиков" %}

```
/contract draft list
```

{% endcode %}

Для повторного открытия книги используйте:

{% code title="Редактирование черновика" %}

```
/contract draft edit <id>
```

{% endcode %}

## Как это будет выглядеть для игрока

После публикации:

* на табличке появится статус активного контракта;
* игроки смогут открыть карточку контракта;
* взять контракт можно после ПКМ по табличке и команды `/contract take <id>`;
* после выполнения контракт отправляется на проверку;
* затем он проходит подтверждение города и модерации.

## Что происходит после взятия

{% tabs %}
{% tab title="Для исполнителя" %}

1. Игрок нажимает ПКМ по табличке.
2. Подтверждает взятие командой `/contract take <id>`.
3. Выполняет задачу.
4. Владелец или заместитель города исполнителя отправляет контракт на проверку: `/contract submit <id>`.
   {% endtab %}

{% tab title="Для города-заказчика" %}

1. Город ждёт, пока исполнитель завершит работу.
2. После отправки на проверку владелец или заместитель города проверяет результат.
3. Если всё верно, использует `/contract town approve <id>`.
4. После этого контракт уходит в очередь модерации.
   {% endtab %}
   {% endtabs %}

## Ограничения и важные правила

* Нельзя брать контракт своего города.
* Нельзя брать собственный контракт.
* У города есть бюджет сложности на публикацию и взятие контрактов.
* По умолчанию один игрок может держать только один контракт в работе.
* По умолчанию у одного города одновременно может быть только один контракт в работе.
* Если после взятия отказаться слишком поздно, с города-исполнителя может сняться часть контрактных очков.

<details>

<summary>Почему контракт могут не дать опубликовать</summary>

* Табличка заполнена не по шаблону
* Указан недопустимый тип
* Указана недопустимая сложность
* У автора уже есть активный черновик
* У города закончился бюджет публикации по сложности
* Автор не является владельцем или заместителем города

</details>

## Что писать в хорошем описании

Ниже шаблон, который обычно даёт достаточно контекста и исполнителю, и проверяющему:

{% code title="Шаблон описания" %}

```
Что нужно сделать:
Построить / добыть / оформить ...

Объём:
Точное количество, размеры, этапы или состав работ.

Ограничения:
Какие материалы, стили, зоны или правила обязательны.

Критерий готовности:
По каким признакам работа считается выполненной.

Куда сдавать результат:
Координаты, сундук, место встречи или ник для связи.
```

{% endcode %}

## Блок со скриншотом таблички

Сюда позже можно вставить готовый скриншот заполнения таблички.

Рекомендуемый формат подписи под изображением:

> Пример правильно заполненной таблички перед созданием черновика.

И текстом рядом стоит продублировать шаблон:

{% code title="Текстовый дубль" %}

```
1 строка: тип контракта
2 строка: Сложность <E/D/C/B/A/S>
3 строка: [Contract]
4 строка: срок, например 5ч или 7d
```

{% endcode %}

## Короткая памятка

{% hint style="success" %}
Короткая схема: поставили табличку -> получили черновик -> заполнили книгу -> выполнили `/contract draft publish <id>` -> дождались исполнителя и проверки.
{% endhint %}
