Экран отряда: подсказка не закрывает статы, имена не режутся
Подсказка вставала НИЖЕ курсора и ложилась ровно на строки характеристик - те самые, которые объясняет: игрок наводил на броню, чтобы понять, откуда 28%, и подсказка закрывала строку ARMOR. Теперь она встаёт выше курсора, там пусто. Ячейка схрона была 52 пикселя: в неё не влезало даже слово BATTERY, и половина имён обрезалась на середине. Шесть колонок вместо восьми - читаемость важнее двух лишних ячеек, прокрутка и так есть. Сумка вне вылазки честно подписана RAID ONLY: она принадлежит забегу и очищается при сборке этажа, а молчащий отказ читается как поломка. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
9d715a9c3a
commit
da670af6dc
@ -1,9 +1,10 @@
|
|||||||
# Открытая арена с четырьмя опорами. Здесь работает решатель огневых позиций:
|
# Открытая арена с четырьмя опорами. Здесь работает решатель огневых позиций:
|
||||||
# места хватает, и отряд обязан разойтись по линиям, а не сбиться в кучу.
|
# места хватает, и отряд обязан разойтись по линиям, а не сбиться в кучу.
|
||||||
#
|
#
|
||||||
# Опоры стали ОДНОРЯДНЫМИ вместо блоков 2x2, а сама арена сузилась до 12: блок
|
# Опоры отодвинуты В УГЛЫ и стали однорядными. Причина не в красоте: строй из
|
||||||
# отнимал у центра столько пола, что пятеро вставали в него впритык и переставали
|
# пяти занимает поперёк почти четыре тайла, и опора, стоявшая у самого прохода,
|
||||||
# расходиться. Укрытие нужно, чтобы за него зайти, а не чтобы об него спотыкаться.
|
# ловила крайнего бойца намертво — упереться в неё он мог, а обойти нет.
|
||||||
|
# Полоса пола между дверями противоположных стен обязана быть шире строя.
|
||||||
name arena
|
name arena
|
||||||
size 12 12
|
size 12 12
|
||||||
weight 3
|
weight 3
|
||||||
@ -12,20 +13,20 @@ start 0
|
|||||||
depth 1 0
|
depth 1 0
|
||||||
tiles
|
tiles
|
||||||
####+++#####
|
####+++#####
|
||||||
#..........#
|
#.#......#.#
|
||||||
#..........#
|
#.#......#.#
|
||||||
#..##..##..#
|
|
||||||
#..........#
|
#..........#
|
||||||
+..........+
|
+..........+
|
||||||
+..........+
|
+..........+
|
||||||
+..........+
|
+..........+
|
||||||
#..........#
|
#..........#
|
||||||
#..##..##..#
|
|
||||||
#..........#
|
#..........#
|
||||||
|
#.#......#.#
|
||||||
|
#.#......#.#
|
||||||
####+++#####
|
####+++#####
|
||||||
spawn 4 4 0.90 shambler:4 rusher:3 spitter:2
|
spawn 4 5 0.90 shambler:4 rusher:3 spitter:2
|
||||||
spawn 9 4 0.85 shambler:4 rusher:3
|
spawn 8 5 0.85 shambler:4 rusher:3
|
||||||
spawn 4 7 0.85 shambler:3 rusher:2 brute:1
|
spawn 4 7 0.85 shambler:3 rusher:2 brute:1
|
||||||
spawn 9 7 0.90 shambler:4 spitter:2
|
spawn 8 7 0.90 shambler:4 spitter:2
|
||||||
spawn 6 1 0.40 crate:2 barrel:1
|
spawn 6 1 0.40 crate:2 barrel:1
|
||||||
spawn 7 10 0.40 crate:1 locker:1
|
spawn 6 10 0.40 crate:1 locker:1
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
# Казарма: ряды перегородок и сквозной проход посередине. Твари выходят
|
# Казарма: койки по нишам вдоль стен, середина сквозная. Твари выходят
|
||||||
# из-за переборок сбоку, а не в лоб, — строй приходится разворачивать на ходу.
|
# из-за переборок сбоку, а не в лоб, — строй приходится разворачивать на ходу.
|
||||||
#
|
#
|
||||||
# Перегородок стало вдвое меньше, а проход посередине — в три ряда. Прежние пять
|
# Прежние пять рядов переборок резали казарму на щели шириной в тело: сбоку
|
||||||
# рядов по два тайла резали комнату на щели шириной в тело: сбоку выходить было
|
# выходить было откуда, а разворачиваться в ответ уже негде. Ниши остались
|
||||||
# откуда, а разворачиваться в ответ уже негде.
|
# ровно там, где не мешают проходу от двери до двери.
|
||||||
name barracks
|
name barracks
|
||||||
size 12 9
|
size 12 9
|
||||||
weight 2
|
weight 2
|
||||||
@ -12,13 +12,13 @@ start 0
|
|||||||
depth 2 0
|
depth 2 0
|
||||||
tiles
|
tiles
|
||||||
####+++#####
|
####+++#####
|
||||||
|
#.#......#.#
|
||||||
#..........#
|
#..........#
|
||||||
#..##..##..#
|
|
||||||
+..........+
|
+..........+
|
||||||
+..........+
|
+..........+
|
||||||
+..........+
|
+..........+
|
||||||
#..##..##..#
|
|
||||||
#..........#
|
#..........#
|
||||||
|
#.#......#.#
|
||||||
####+++#####
|
####+++#####
|
||||||
spawn 4 1 0.75 shambler:3 rusher:2
|
spawn 4 1 0.75 shambler:3 rusher:2
|
||||||
spawn 8 1 0.60 spitter:2 shambler:1
|
spawn 8 1 0.60 spitter:2 shambler:1
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
# Перекрёсток. Рукава шириной три тайла — ровно как коридоры между комнатами:
|
# Перекрёсток. Рукава шириной пять тайлов: правило «не стрелять сквозь своих»
|
||||||
# правило «не стрелять сквозь своих» упирается в геометрию, и отряд вытягивается
|
# упирается в геометрию, и отряд вытягивается в колонну.
|
||||||
# в колонну, но не встаёт в ней намертво.
|
|
||||||
#
|
#
|
||||||
# Середина расширена до четырёх рядов: перекрёсток — единственное место, где
|
# Пять, а не три: строй из пяти занимает поперёк почти четыре тайла, и в рукаве
|
||||||
# колонна имеет право снова стать строем, и на трёх рядах она этого не успевала.
|
# шириной три крайние бойцы упирались в его же стены на входе. Комната обязана
|
||||||
|
# СЖИМАТЬ строй, а не запирать его.
|
||||||
name corridor_x
|
name corridor_x
|
||||||
size 12 12
|
size 12 12
|
||||||
weight 3
|
weight 3
|
||||||
@ -12,18 +12,18 @@ start 0
|
|||||||
depth 1 0
|
depth 1 0
|
||||||
tiles
|
tiles
|
||||||
####+++#####
|
####+++#####
|
||||||
####...#####
|
###.....####
|
||||||
####...#####
|
###.....####
|
||||||
####...#####
|
#..........#
|
||||||
+..........+
|
+..........+
|
||||||
+..........+
|
+..........+
|
||||||
+..........+
|
+..........+
|
||||||
#..........#
|
#..........#
|
||||||
####...#####
|
#..........#
|
||||||
####...#####
|
###.....####
|
||||||
####...#####
|
###.....####
|
||||||
####+++#####
|
####+++#####
|
||||||
spawn 6 2 0.60 rusher:3 lurker:1
|
spawn 5 1 0.60 rusher:3 lurker:1
|
||||||
spawn 6 10 0.60 rusher:3 lurker:1
|
spawn 5 10 0.60 rusher:3 lurker:1
|
||||||
spawn 2 6 0.50 shambler:2 spitter:1
|
spawn 2 5 0.50 shambler:2 spitter:1
|
||||||
spawn 10 6 0.50 shambler:2 spitter:1
|
spawn 9 5 0.50 shambler:2 spitter:1
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
# Стартовая: просторно, светло по планировке и почти пусто.
|
# Стартовая: просторно, светло по планировке и почти пусто.
|
||||||
# Отряд обязан успеть собраться в строй до первой твари.
|
# Отряд обязан успеть собраться в строй до первой твари.
|
||||||
#
|
#
|
||||||
# Поперёк комнаты идёт сплошная полоса пола в три ряда, и опор осталось по одной
|
# Пусто здесь не от лени. Отряд высаживается в центре и первым делом
|
||||||
# на угол. Первое, что отряд делает после высадки, — разворачивается; делать это
|
# разворачивается; разворот из пяти тел не помещается между двумя тумбами,
|
||||||
# должно быть где, иначе первые секунды каждого этажа уходят на распутывание строя.
|
# и первые секунды каждого этажа уходили на распутывание строя.
|
||||||
name hall_start
|
name hall_start
|
||||||
size 12 10
|
size 12 10
|
||||||
weight 2
|
weight 2
|
||||||
@ -12,14 +12,14 @@ start 1
|
|||||||
depth 1 0
|
depth 1 0
|
||||||
tiles
|
tiles
|
||||||
####+++#####
|
####+++#####
|
||||||
|
#.#......#.#
|
||||||
#..........#
|
#..........#
|
||||||
#..........#
|
#..........#
|
||||||
#..#....#..#
|
|
||||||
+..........+
|
+..........+
|
||||||
+..........+
|
+..........+
|
||||||
+..........+
|
+..........+
|
||||||
#..#....#..#
|
|
||||||
#..........#
|
#..........#
|
||||||
|
#.#......#.#
|
||||||
####+++#####
|
####+++#####
|
||||||
spawn 2 2 0.50 crate:2 barrel:1
|
spawn 4 1 0.50 crate:2 barrel:1
|
||||||
spawn 9 7 0.40 barrel:1 locker:1
|
spawn 7 8 0.40 barrel:1 locker:1
|
||||||
|
|||||||
@ -1,9 +1,10 @@
|
|||||||
# Гнездо: глухое ядро посередине и кольцо вокруг него. Линий огня почти нет,
|
# Гнездо: выводковые камеры по углам, середина открыта. Линий огня почти нет —
|
||||||
# зато клинку есть где работать — сектор упирается в стену, а не в союзника.
|
# они упираются в углы, — зато клинку есть где работать.
|
||||||
#
|
#
|
||||||
# Кольцо теперь в три тайла со всех сторон, а перегородок внутри него нет вовсе.
|
# Кольцевые перегородки посередине пришлось убрать: между ними оставались
|
||||||
# Прежние два вложенных кольца давали проходы шириной в одну клетку: отряд не
|
# проходы в одну клетку, и отряд не обходил гнездо, а вставал в нём. Тесноту
|
||||||
# обходил ядро, он в нём застревал, и «нет линий огня» превращалось в «нет игры».
|
# теперь делает не ширина прохода, а то, что тварей выпускают со всех четырёх
|
||||||
|
# сторон сразу.
|
||||||
name nest
|
name nest
|
||||||
size 12 12
|
size 12 12
|
||||||
weight 2
|
weight 2
|
||||||
@ -12,18 +13,18 @@ start 0
|
|||||||
depth 4 0
|
depth 4 0
|
||||||
tiles
|
tiles
|
||||||
####+++#####
|
####+++#####
|
||||||
|
##.......###
|
||||||
|
##.......###
|
||||||
#..........#
|
#..........#
|
||||||
#..........#
|
+..........+
|
||||||
#..........#
|
+..........+
|
||||||
#...####...#
|
|
||||||
+...####...+
|
|
||||||
+...####...+
|
|
||||||
+..........+
|
+..........+
|
||||||
#..........#
|
#..........#
|
||||||
#..........#
|
#..........#
|
||||||
#..........#
|
###.......##
|
||||||
|
###.......##
|
||||||
####+++#####
|
####+++#####
|
||||||
spawn 5 1 0.85 shambler:3 brute:1
|
spawn 5 1 0.85 shambler:3 brute:1
|
||||||
spawn 2 5 0.80 lurker:2 rusher:2
|
spawn 3 5 0.80 lurker:2 rusher:2
|
||||||
spawn 9 5 0.80 lurker:2 rusher:2
|
spawn 8 5 0.80 lurker:2 rusher:2
|
||||||
spawn 6 10 0.85 shambler:3 spitter:2
|
spawn 6 10 0.85 shambler:3 spitter:2
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
# Яма: колодец посередине с единственным входом снизу. Громилу в нём
|
# Яма: колодец в дальнем углу, а не посередине. Громилу в нём приходится
|
||||||
# приходится разбирать вдвоём, а круг его удара достаёт обоих.
|
# разбирать вдвоём, а круг его удара достаёт обоих.
|
||||||
#
|
#
|
||||||
# Колодец сузился до двух тайлов, зато обход вокруг него стал трёхрядным. Смысл
|
# Посередине колодец стоять не может: он перегораживал бы проход от двери к
|
||||||
# комнаты в том, что В КОЛОДЦЕ тесно, а не в том, что тесно везде: раньше отряд
|
# двери, и строй упирался бы в его стенку всей шириной. В углу он делает ровно
|
||||||
# вставал ещё на подходе и до ямы просто не доходил.
|
# то же самое — заставляет лезть в тесноту, — но лезть туда решает игрок.
|
||||||
name pit
|
name pit
|
||||||
size 12 12
|
size 12 12
|
||||||
weight 2
|
weight 2
|
||||||
@ -12,19 +12,19 @@ start 0
|
|||||||
depth 6 0
|
depth 6 0
|
||||||
tiles
|
tiles
|
||||||
####+++#####
|
####+++#####
|
||||||
|
#.#......#.#
|
||||||
|
#.#......#.#
|
||||||
|
#..........#
|
||||||
|
+..........+
|
||||||
|
+..........+
|
||||||
|
+..........+
|
||||||
#..........#
|
#..........#
|
||||||
#..........#
|
#..........#
|
||||||
#..........#
|
#.#.....#..#
|
||||||
#...####...#
|
#.#.....#..#
|
||||||
+...#..#...+
|
|
||||||
+...#..#...+
|
|
||||||
+...#..#...+
|
|
||||||
#..........#
|
|
||||||
#..........#
|
|
||||||
#..........#
|
|
||||||
####+++#####
|
####+++#####
|
||||||
spawn 5 6 0.95 brute:3 shambler:2
|
spawn 9 10 0.95 brute:3 shambler:2
|
||||||
spawn 2 4 0.70 spitter:2 rusher:2
|
spawn 2 5 0.70 spitter:2 rusher:2
|
||||||
spawn 9 4 0.70 spitter:2 rusher:2
|
spawn 9 5 0.70 spitter:2 rusher:2
|
||||||
spawn 6 10 0.60 shambler:3 lurker:1
|
spawn 6 8 0.60 shambler:3 lurker:1
|
||||||
spawn 2 9 0.40 barrel:2 crate:1
|
spawn 5 1 0.40 barrel:2 crate:1
|
||||||
|
|||||||
@ -1,9 +1,8 @@
|
|||||||
# Склад: обстановки много, тварей мало. Место, где игрок узнаёт, что хлам
|
# Склад: обстановки много, тварей мало. Место, где игрок узнаёт, что хлам
|
||||||
# ломается, — и тратит на это магазин, которого потом не хватит.
|
# ломается, — и тратит на это магазин, которого потом не хватит.
|
||||||
#
|
#
|
||||||
# Стеллаж стал одним глухим блоком посередине, а обход вокруг него — трёхрядным.
|
# Стеллажи стоят вдоль стен, а не двойной рамкой посередине: рамка оставляла по
|
||||||
# Прежняя двойная рамка оставляла по краям щели в один тайл: отряд входил на
|
# краям щели в один тайл, и отряд входил на склад, а выходил из него гуськом.
|
||||||
# склад и не мог из него выйти иначе как гуськом.
|
|
||||||
name storage
|
name storage
|
||||||
size 12 10
|
size 12 10
|
||||||
weight 2
|
weight 2
|
||||||
@ -12,16 +11,16 @@ start 0
|
|||||||
depth 1 0
|
depth 1 0
|
||||||
tiles
|
tiles
|
||||||
####+++#####
|
####+++#####
|
||||||
|
#.#......#.#
|
||||||
|
#.#......#.#
|
||||||
#..........#
|
#..........#
|
||||||
#..........#
|
+..........+
|
||||||
#...####...#
|
+..........+
|
||||||
+...####...+
|
|
||||||
+...####...+
|
|
||||||
+..........+
|
+..........+
|
||||||
#..........#
|
#..........#
|
||||||
#..........#
|
#.#......#.#
|
||||||
####+++#####
|
####+++#####
|
||||||
spawn 2 4 0.90 crate:4 barrel:3 locker:2
|
spawn 4 1 0.90 crate:4 barrel:3 locker:2
|
||||||
spawn 9 4 0.85 crate:3 barrel:2
|
spawn 8 1 0.85 crate:3 barrel:2
|
||||||
spawn 5 7 0.70 barrel:2 locker:2
|
spawn 4 8 0.70 barrel:2 locker:2
|
||||||
spawn 1 1 0.45 shambler:2 lurker:1
|
spawn 1 4 0.45 shambler:2 lurker:1
|
||||||
|
|||||||
@ -1,27 +1,27 @@
|
|||||||
# Схрон: тесная комната с глухим сейфом посередине. Хват здесь опаснее всего —
|
# Схрон: самая маленькая комната набора. Хват здесь опаснее всего — вырванного
|
||||||
# вырванного из строя бойца в такой тесноте нечем прикрыть.
|
# из строя бойца в такой тесноте нечем прикрыть.
|
||||||
#
|
#
|
||||||
# Тесно тут за счёт РАЗМЕРА комнаты, а не за счёт щелей: камера в камере давала
|
# Тесно тут за счёт РАЗМЕРА, а не за счёт щелей: камера в камере давала обходы
|
||||||
# обходы шириной в одну клетку, и отряд не столько рисковал, сколько стоял.
|
# шириной в одну клетку, и отряд в схроне не рисковал, а стоял.
|
||||||
# Обход теперь трёхрядный, а схрон всё равно самая маленькая комната набора.
|
|
||||||
name vault
|
name vault
|
||||||
size 10 10
|
size 11 11
|
||||||
weight 1
|
weight 1
|
||||||
theme 3
|
theme 3
|
||||||
start 0
|
start 0
|
||||||
depth 8 0
|
depth 8 0
|
||||||
tiles
|
tiles
|
||||||
####+++###
|
####+++####
|
||||||
#........#
|
#.#.....#.#
|
||||||
#........#
|
#.#.....#.#
|
||||||
#........#
|
#.........#
|
||||||
+...##...+
|
+.........+
|
||||||
+...##...+
|
+.........+
|
||||||
+...##...+
|
+.........+
|
||||||
#........#
|
#.........#
|
||||||
#........#
|
#.#.....#.#
|
||||||
####+++###
|
#.#.....#.#
|
||||||
spawn 7 5 0.90 lurker:3 brute:1
|
####+++####
|
||||||
spawn 1 1 0.55 rusher:2 shambler:1
|
spawn 5 5 0.90 lurker:3 brute:1
|
||||||
spawn 8 8 0.55 spitter:2
|
spawn 4 1 0.55 rusher:2 shambler:1
|
||||||
spawn 4 8 0.40 locker:2 crate:1
|
spawn 6 9 0.55 spitter:2
|
||||||
|
spawn 4 9 0.40 locker:2 crate:1
|
||||||
|
|||||||
@ -1,7 +1,8 @@
|
|||||||
# Ряд камер. Ниши по бокам: в них удобно стоять и невозможно отступать.
|
# Ряд камер. Ниши по бокам: в них удобно стоять и невозможно отступать.
|
||||||
#
|
#
|
||||||
# Ниш стало меньше, а проход между рядами — трёхрядным: ниша должна быть местом,
|
# Ниш стало вдвое меньше, и стоят они у самых стен. Прежний частокол оставлял
|
||||||
# КУДА зашли, а не единственным местом, где помещается тело.
|
# между камерами проходы в одну клетку: ниша должна быть местом, КУДА зашли,
|
||||||
|
# а не единственным местом, где помещается тело.
|
||||||
name cells
|
name cells
|
||||||
size 12 9
|
size 12 9
|
||||||
weight 3
|
weight 3
|
||||||
@ -9,14 +10,14 @@ theme 0
|
|||||||
depth 1 0
|
depth 1 0
|
||||||
tiles
|
tiles
|
||||||
####+++#####
|
####+++#####
|
||||||
|
#.#......#.#
|
||||||
#..........#
|
#..........#
|
||||||
#.#.#..#.#.#
|
|
||||||
+..........+
|
+..........+
|
||||||
+..........+
|
+..........+
|
||||||
+..........+
|
+..........+
|
||||||
#.#.#..#.#.#
|
|
||||||
#..........#
|
#..........#
|
||||||
|
#.#......#.#
|
||||||
####+++#####
|
####+++#####
|
||||||
spawn 2 1 0.65 rusher:3 shambler:2
|
spawn 4 1 0.65 rusher:3 shambler:2
|
||||||
spawn 10 7 0.65 rusher:3 shambler:2
|
spawn 8 7 0.65 rusher:3 shambler:2
|
||||||
spawn 6 4 0.40 bandage:2 knife:1 rifle:1
|
spawn 6 4 0.40 bandage:2 knife:1 rifle:1
|
||||||
|
|||||||
@ -1,12 +1,11 @@
|
|||||||
# Зев. Открытая арена с ядром посередине: единственное место в наборе, где
|
# Зев. Открытая арена: единственное место в наборе, где отряд может встать
|
||||||
# отряд может встать кругом.
|
# кругом, — а встать кругом впятером нельзя нигде, где проход уже четырёх тайлов.
|
||||||
#
|
#
|
||||||
# У ядра ДВА прохода, север и юг. Глухая коробка посередине выглядит на сетке
|
# Ядро посередине пришлось убрать не ради простора, а ради проходимости: оно
|
||||||
# так же, но точка спавна внутри неё недостижима: тварь не дойдёт до отряда и
|
# стояло ровно на линии между дверями и ловило строй всей шириной. Урок, ради
|
||||||
# не будет убита, и этаж тихо станет легче. Ровно это и ловит --check.
|
# которого его когда-то рисовали, остался в силе: точка спавна в глухой коробке
|
||||||
#
|
# недостижима, тварь до отряда не дойдёт, и этаж тихо станет легче. Ровно это
|
||||||
# Кольцо вокруг ядра — три тайла со всех сторон: встать кругом впятером нельзя
|
# и ловит --check.
|
||||||
# в обходе шириной в два тела, там можно только выстроиться в очередь.
|
|
||||||
name maw
|
name maw
|
||||||
size 12 11
|
size 12 11
|
||||||
weight 2
|
weight 2
|
||||||
@ -14,17 +13,17 @@ theme 2
|
|||||||
depth 3 0
|
depth 3 0
|
||||||
tiles
|
tiles
|
||||||
####+++#####
|
####+++#####
|
||||||
|
#.#......#.#
|
||||||
|
#.#......#.#
|
||||||
#..........#
|
#..........#
|
||||||
|
+..........+
|
||||||
|
+..........+
|
||||||
|
+..........+
|
||||||
#..........#
|
#..........#
|
||||||
#..........#
|
#.#......#.#
|
||||||
#...#..#...#
|
#.#......#.#
|
||||||
+...#..#...+
|
|
||||||
+...#..#...+
|
|
||||||
+...#..#...+
|
|
||||||
#...#..#...#
|
|
||||||
#..........#
|
|
||||||
####+++#####
|
####+++#####
|
||||||
spawn 6 5 0.85 brute:3 lurker:2
|
spawn 6 5 0.85 brute:3 lurker:2
|
||||||
spawn 1 1 0.60 spitter:2 rusher:2
|
spawn 4 1 0.60 spitter:2 rusher:2
|
||||||
spawn 10 9 0.60 spitter:2 rusher:2
|
spawn 8 9 0.60 spitter:2 rusher:2
|
||||||
spawn 10 1 0.45 shotgun:1 plate:1 cleaver:1
|
spawn 8 1 0.45 shotgun:1 plate:1 cleaver:1
|
||||||
|
|||||||
@ -1,9 +1,8 @@
|
|||||||
# Стартовая HOLLOW. Тесная и короткая: вид сверху показывает всю комнату
|
# Стартовая HOLLOW. Тесная и короткая: вид сверху показывает всю комнату
|
||||||
# сразу, и просторный зал первого этажа не оставил бы ничего на потом.
|
# сразу, и просторный зал первого этажа не оставил бы ничего на потом.
|
||||||
#
|
#
|
||||||
# Тесная — по размеру, а не по проходам. От четырёх опор осталась одна: отряд
|
# Тесная — по РАЗМЕРУ, а не по проходам. Четыре тумбы посередине стояли ровно
|
||||||
# высаживается сюда всем составом и первым делом разворачивается, а разворот
|
# там, где отряд разворачивается после высадки, и разворот в них упирался.
|
||||||
# между четырьмя тумбами упирался в них, а не в стены.
|
|
||||||
name mouth
|
name mouth
|
||||||
size 11 9
|
size 11 9
|
||||||
weight 2
|
weight 2
|
||||||
@ -12,13 +11,13 @@ start 1
|
|||||||
depth 1 0
|
depth 1 0
|
||||||
tiles
|
tiles
|
||||||
####+++####
|
####+++####
|
||||||
#.........#
|
#.#.....#.#
|
||||||
#.........#
|
#.........#
|
||||||
+.........+
|
+.........+
|
||||||
+....#....+
|
+.........+
|
||||||
+.........+
|
+.........+
|
||||||
#.........#
|
#.........#
|
||||||
#.........#
|
#.#.....#.#
|
||||||
####+++####
|
####+++####
|
||||||
spawn 2 1 0.45 barrel:1
|
spawn 4 1 0.45 barrel:1
|
||||||
spawn 8 7 0.45 barrel:1
|
spawn 6 7 0.45 barrel:1
|
||||||
|
|||||||
@ -1,9 +1,9 @@
|
|||||||
# Колодец. Узкий и длинный: строй здесь не развернуть, и это единственное,
|
# Колодец. Узкий и длинный: строй здесь не развернуть, и это единственное,
|
||||||
# что комната делает.
|
# что комната делает.
|
||||||
#
|
#
|
||||||
# «Не развернуть» — это пять тайлов в ширину против трёх рядов строя, а не щель
|
# «Не развернуть» — это пять тайлов в ширину против четырёх, которые занимает
|
||||||
# в одну клетку. Перемычки теперь поджимают колодец с БОКОВ до трёх тайлов, а не
|
# строй, а не щель в одну клетку. Перемычки поперёк колодца убраны: они не
|
||||||
# перекрывают его посередине: отряд проходит с трудом, но проходит.
|
# сжимали отряд, они его останавливали.
|
||||||
name shaft
|
name shaft
|
||||||
size 7 12
|
size 7 12
|
||||||
weight 2
|
weight 2
|
||||||
@ -13,11 +13,11 @@ tiles
|
|||||||
##+++##
|
##+++##
|
||||||
#.....#
|
#.....#
|
||||||
#.....#
|
#.....#
|
||||||
##...##
|
#.....#
|
||||||
+.....+
|
+.....+
|
||||||
+.....+
|
+.....+
|
||||||
+.....+
|
+.....+
|
||||||
##...##
|
#.....#
|
||||||
#.....#
|
#.....#
|
||||||
#.....#
|
#.....#
|
||||||
#.....#
|
#.....#
|
||||||
|
|||||||
@ -151,8 +151,11 @@ constexpr int SQ_HINT_Y = 250, SQ_HINT_STEP = 10;
|
|||||||
// Схрон: то, что лежит на базе между вылазками. Двумя рядами во всю ширину
|
// Схрон: то, что лежит на базе между вылазками. Двумя рядами во всю ширину
|
||||||
// внизу, а не колонкой сбоку: в схроне десятки предметов, и подпись каждого
|
// внизу, а не колонкой сбоку: в схроне десятки предметов, и подпись каждого
|
||||||
// должна читаться — иначе выбор снаряжения превращается в перебор иконок.
|
// должна читаться — иначе выбор снаряжения превращается в перебор иконок.
|
||||||
constexpr int SQ_STASH_X = 22, SQ_STASH_Y = 208, SQ_STASH_W = 52, SQ_STASH_H = 18;
|
// Ячейка схрона шире, а колонок меньше: в 52 пикселя не влезало даже слово
|
||||||
constexpr int SQ_STASH_GX = 4, SQ_STASH_GY = 3, SQ_STASH_COLS = 8, SQ_STASH_ROWS = 2;
|
// BATTERY, и половина имён обрезалась на середине. Читаемость важнее, чем ещё
|
||||||
|
// две ячейки в ряду: прокрутка есть, а угадывать вещь по обрубку — нет.
|
||||||
|
constexpr int SQ_STASH_X = 16, SQ_STASH_Y = 206, SQ_STASH_W = 74, SQ_STASH_H = 18;
|
||||||
|
constexpr int SQ_STASH_GX = 4, SQ_STASH_GY = 3, SQ_STASH_COLS = 6, SQ_STASH_ROWS = 2;
|
||||||
constexpr int SQ_STASH_CELLS = SQ_STASH_COLS * SQ_STASH_ROWS;
|
constexpr int SQ_STASH_CELLS = SQ_STASH_COLS * SQ_STASH_ROWS;
|
||||||
|
|
||||||
// Мастерская. Слева схрон той же сеткой, что и на экране отряда (привычка
|
// Мастерская. Слева схрон той же сеткой, что и на экране отряда (привычка
|
||||||
@ -385,9 +388,16 @@ void DrawTip(const Layout& l, const Tip& t, int mx, int my)
|
|||||||
int wide = 0;
|
int wide = 0;
|
||||||
for (int i = 0; i < t.count; ++i) wide = std::max(wide, TextW(l, t.lines[i], 8));
|
for (int i = 0; i < t.count; ++i) wide = std::max(wide, TextW(l, t.lines[i], 8));
|
||||||
|
|
||||||
UiRect box{mx + 8, my + 8, wide + pad * 2, t.count * step + pad * 2 - 2};
|
// Подсказка встаёт ВЫШЕ курсора, а не ниже.
|
||||||
// Подсказка не должна вылезать за кадр: у края экрана она переезжает на
|
//
|
||||||
// другую сторону курсора, а не обрезается.
|
// Ниже она ложилась ровно на строки характеристик — те самые, которые
|
||||||
|
// объясняет: игрок наводил на броню, чтобы понять, откуда 28%, и подсказка
|
||||||
|
// закрывала строку ARMOR. Сверху под ней только пустое место.
|
||||||
|
UiRect box{mx + 8, my - 6 - (t.count * step + pad * 2 - 2), wide + pad * 2,
|
||||||
|
t.count * step + pad * 2 - 2};
|
||||||
|
|
||||||
|
// И не должна вылезать за кадр: у края экрана она переезжает на другую
|
||||||
|
// сторону курсора, а не обрезается.
|
||||||
if (box.x + box.w > INTERNAL_W - 2) box.x = mx - 8 - box.w;
|
if (box.x + box.w > INTERNAL_W - 2) box.x = mx - 8 - box.w;
|
||||||
if (box.y + box.h > INTERNAL_H - 2) box.y = INTERNAL_H - 2 - box.h;
|
if (box.y + box.h > INTERNAL_H - 2) box.y = INTERNAL_H - 2 - box.h;
|
||||||
if (box.x < 2) box.x = 2;
|
if (box.x < 2) box.x = 2;
|
||||||
@ -545,11 +555,13 @@ void BuildWidgets(const Ui& ui, const Game& game, const Layout& l, Widgets& out)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Сумка ОБЩАЯ: она не зависит от выбранного бойца, и переложить
|
// Сумка ОБЩАЯ: она не зависит от выбранного бойца, и переложить
|
||||||
// из неё может любой (sim/items.h).
|
// из неё может любой (sim/items.h). Вне вылазки она недоступна:
|
||||||
|
// сумка принадлежит забегу и очищается при сборке этажа.
|
||||||
for (int s = 0; s < SQUAD_BAG_SLOTS; ++s)
|
for (int s = 0; s < SQUAD_BAG_SLOTS; ++s)
|
||||||
{
|
{
|
||||||
Widget& w = out.Add(UiPart::BAG, s, BagRect(s));
|
Widget& w = out.Add(UiPart::BAG, s, BagRect(s));
|
||||||
w.item = game.squad.bag.slots[s];
|
w.item = game.squad.bag.slots[s];
|
||||||
|
w.enabled = ui.started;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Строки характеристик тоже наводимы. Читать «SPEED 95%» и гадать,
|
// Строки характеристик тоже наводимы. Читать «SPEED 95%» и гадать,
|
||||||
@ -1364,7 +1376,10 @@ void DrawSquadScreen(const Layout& l, const Game& game, const Ui& ui, const Widg
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Text(l, "BAG", SQ_BAG_X, SQ_BAG_Y - 14, 10, COL_TEXT);
|
// Подпись честно говорит, почему сумка не берёт вещи вне забега. Молчащий
|
||||||
|
// отказ читается как поломка — а это правило: сумка принадлежит вылазке.
|
||||||
|
if (ui.started) Text(l, "BAG", SQ_BAG_X, SQ_BAG_Y - 14, 10, COL_TEXT);
|
||||||
|
else Text(l, "BAG - RAID ONLY", SQ_BAG_X, SQ_BAG_Y - 14, 8, COL_DEAD);
|
||||||
|
|
||||||
if (game.profile)
|
if (game.profile)
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user