Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Лицензия торговцам #165

Closed
wants to merge 1 commit into from
Closed

Лицензия торговцам #165

wants to merge 1 commit into from

Conversation

Epicus7
Copy link
Member

@Epicus7 Epicus7 commented Sep 2, 2018

Добавил новый класс бумаг, которые при создании берут свой контент из .html файлов.

Техническая часть:

Возникла проблема с отображением html в бумагах. В обычном браузере он ведет себя довольно странно - два переноса строки превращается в один <br>, а один перенос строки игнорируется. Последовательность "\r\n\r\n" Бьонд категорически принимать отказался, так что я зафорсил в папке с описанием документов LF-стиль для окончаний, чтобы в конце строк всегда были \n вместо \r\n.

Ну не знаю. В принципе, работает. Можно было бы регексы воткнуть, но чет не очень хочется.

Дизайн:

Лицензия выглядит так:
image

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

Категории товаров надо бы продумать, не знаю какие стоит выделить.

issue #46

@Epicus7
Copy link
Member Author

Epicus7 commented Sep 2, 2018

ПР пока чисто для обсуждения, принимать не надо - лицензия выглядит уныленько.

@PlinHost
Copy link
Collaborator

PlinHost commented Sep 3, 2018

Так в html переносы строк <br>, а \n игнорируется - все правильно.

Файл лучше в кэш положить, указав его в ''.

@Cinericius
Copy link
Contributor

Какие надо рандомизированные поля:

  1. Большая солидная печать НаноТрейзен (нарисую в нескольких вариантах, соответственно правильным в каждом конкретном раунде будет только 1)
  2. Название выдававшего отделения (варианты для рандомизации: NanoTrasen Supply Department; NanoTrasen Trading Department; NanoTrasen External Affairs Department; NanoTrasen Trading Affairs Department; NanoTrasen External Trading Department; NanoTrasen Supply Affairs Department).
  3. Код выдававшего отделения, тупа набор циферок и дефисов, чот типа 8-800-5553535.
  4. Имя выдававшего (генерится штук 10 "правильных" обычным генератором имен, типа работники департамента).
  5. Дата и срок. Тут все понятно и просто, но надо не забыть про ограничения на рандом и ошибки. Ну, чтобы это все выглядело осмысленно.
  6. Название торговой организации. (варианты для рандома: Salis & Mercury Trading Company; Milky Way Trade Union; Ben-Perzman Tradeband; SteelGoose Supplies)
  7. Код торговой организации в классификаторе NanoTrasen. Еще тоже номер с дефисами, но мб покороче, типа 13-66613.
  8. Корабли и станции, которые можно посещать. Помимо обязательно присутствующего в неподдельной лицензии NSS Exodus, могут быть следующие рандомные варианты (взято с вики, из старой статьи про NanoTrasen, с правками): NSV Caduceus, NSV Luna, NTV Sierra Otago, NTV Millenium, NTV Duke, NTV Verum, NHV Savior, NSV Preserver, NSS Avalon, NSS Orion, NSS Ontigo, NSS Redemption, NSS Zagreus).
  9. Категории товаров. Тут ошибок быть не может, но есть начальная рандомгенерация. Собственно, разные категории последовательно добавляются в лицензию с разной вероятностью:
    p=1 (эти категории точно есть в лицензии):
    *Продовольствие.
    *Предметы одежды.
    *Сырье и материалы.
    p=0.9
    *Медикаменты.
    *Личные вещи и аксессуары, разрешенные внутренним законодательством NanoTrasen.
    p=0.75
    *Инженерное оборудование для работы в пределах станции.
    *Медицинское оборудование для работы в пределах станции.
    *Исследовательское оборудование.
    p=0.5
    *Скафандры и иное оборудование, предназначенное для проведения работ в открытом космосе.
    *Антиквариат.
    *Домашние питомцы, лабораторные животные и иные инопланетные организмы.
    p=0.05
    *Мелкокалиберное огнестрельное или слабое энергетическое оружие.
    p=0.001 (эти категории почти никогда не попадают в лицензию)
    *Крупнокалиберное огнестрельное или мощное энергетическое оружие.
    *Взрывчатые или сильногорючие вещества, гранаты, в том числе нестандартного действия.
  10. Прямоугольная печать NanoTrasen. Будет 2-3 варианта.
  11. Прямоугольная печать торговой организации. Будет 2-3 варианта на каждую организацию.

Механизм генерации:

  1. Генерится "правильный" набор вариантов, кодов, печатей.
  2. Правильные параметры (какие департаменты существуют и могут выдавать торговые лицензии, какие у них номера и кто в них работает, какие печати есть у НТ и т.д.) генерятся и помещаются в консольку/ПДА/мозг АВД.
  3. Генерится торговая лицензия с правильным набором всего.
  4. Кидается прок на фальшивость лицензии (что-нибудь порядка 15%)
  5. Кидается прок, определяющий в какой строчке будет ошибка.
  6. В строчку вносится ошибка (повнимательнее с датой и сроком, да).
  7. Кидается еще один прок, который с вероятностью 5% внесет еще одну ошибку.
  8. Повторяются пункты 4-5.
  9. Торговец, если он есть, получает предупреждение жирными буквами, что его деятельность на КСН "Исход" не очень законна и он может получить пизды (возможно, стоит конкретно указывать причину, типа истекший срок, отсутствие Исхода в списке разрешенных для посещения объектов, поддельные данные и т.д.).
  10. ?????
  11. ПРОФИТ

@Epicus7
Copy link
Member Author

Epicus7 commented Sep 4, 2018

В рамках этого ПРа сделаю параметры и нормальную генерацию валидной лицензии. Ошибки потом другим ПРом вносить будем, а то много всего.

Ты главное печати нарисуй, пока я поля эти генерирую, да. А то получается мы ПР не закроем этот без них.

@Cinericius
Copy link
Contributor

Печати в процессе.
Прямоугольные будут 32х64, большая будет 96х96 наверное.

@Cinericius
Copy link
Contributor

Да, они будут сильно пиксельные, шоб не выбиваться из стиля.

@Cinericius
Copy link
Contributor

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

@Cinericius
Copy link
Contributor

Бамп.

@BlakeCrazy
Copy link

че, сделали?

@ZerlGray
Copy link
Contributor

Сколько лет оно будет лежать?

@PlinHost
Copy link
Collaborator

Пока Эпикус не вернется, очевидно.

@blakecrazy13
Copy link
Contributor

пусть лежит, я так сказать, продолжу дело Эпикуса...

@Ruforce Ruforce added the 🕗 отложено В доработке, или имеет нерешенные вопросы label Jan 4, 2019
@Cinericius
Copy link
Contributor

@BlakeCrazy если ты жив и легитимный президент, то давай я вышлю тебе dmiшки с печатями и айтемом лицензии.

@ghost ghost added 🌌геймдизайн Затрагивает игровую логику and removed не принимать! labels May 19, 2019
@ghost ghost closed this Jun 14, 2019
@ZerlGray
Copy link
Contributor

Ну все, пизда билду.

@Cinericius
Copy link
Contributor

На швятое покусились

@Epicus7
Copy link
Member Author

Epicus7 commented Jun 14, 2019

Ушла эпоха

@ghost
Copy link

ghost commented Jun 14, 2019

Бранчу не выкидываю, коммиты потом оттуда вытянем.

@vekotov
Copy link
Contributor

vekotov commented Jan 9, 2020

Точно билд загнётся теперь

@Cinericius
Copy link
Contributor

Кощунство

@Cinericius Cinericius reopened this Jan 9, 2020
@Cinericius
Copy link
Contributor

На работу!

@Cinericius Cinericius added the 🔵 одобрено Одобрено с точки зрения геймдизайна label Jan 9, 2020
@Epicus7 Epicus7 force-pushed the dev branch 2 times, most recently from 11df5de to 367c9bd Compare April 4, 2020 03:18
@Cinericius
Copy link
Contributor

К О Г Д А ?
О
Г
Д
А
?

@Epicus7 Epicus7 requested a review from a team as a code owner July 20, 2020 21:30
var/html_path

/obj/item/weapon/paper/fromhtml/New()
info = russian_to_utf8(file2text(html_path), prepare_to_browser = TRUE)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

@jammer312
Copy link
Contributor

Когда (если) вмержат #3257, можно будет запилить через функционал апгрейднутой бумаги (без явного пользования штмля).
Запилить темплейт с именованными полями и его читать из файла (если это вообще нужно), в New() после выполнения прежней реализации (..()) прописывать в именованные поля рандомно сгенерированные параметры, затем make_readonly().

Ну и оно явно еще не готово, пусть повисит драфтом.

@jammer312 jammer312 marked this pull request as draft August 28, 2020 14:38
@Epicus7
Copy link
Member Author

Epicus7 commented Oct 26, 2020

Этот ПР уже неактуален и его надо переделывать чуть более чем полностью. Особенно после обновления бумаг от Джаммера. Думаю пришло время его закрыть.

@Epicus7 Epicus7 closed this Oct 26, 2020
@kreeperHLC
Copy link
Contributor

🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🌌геймдизайн Затрагивает игровую логику 🔵 одобрено Одобрено с точки зрения геймдизайна 🕗 отложено В доработке, или имеет нерешенные вопросы
Projects
None yet
Development

Successfully merging this pull request may close these issues.