Бессмертие: два уровня вместо тумблера
1 — только бой: удары мечом не отнимают HP (ветка в hurt_by_sword).
2 — плюс мелкий урон: не проходят «минус деление» от падения с двух
этажей и от падающей плиты (pop_take_hp гасит count < 100).
Мгновенная смерть остаётся на обоих: пики, чомпер, падение с трёх этажей
и удар вне боевой стойки приходят с count = 100. В коде ровно два
значения урона, 1 и 100, поэтому граница точная, а не эвристическая.
Заодно ушёл костыль «снять бессмертие на время вызова take_hp(100)» в
hurt_by_sword — он был нужен только потому, что прежний чит глушил и
смертельный урон.
Клавиша I идёт по кругу 0 -> 1 -> 2 -> 0; в отладочной метке число
красных палочек = уровень.
This commit is contained in:
@@ -302,7 +302,7 @@ uint8_t pop_dbg_roomnav(uint8_t dir) __banked
|
||||
* жёлтый x 10.. 85 уровень (1..15)
|
||||
* белый x 100..175 комната (1..24)
|
||||
* голубой x 190..205 скорость (1 палочка NORMAL, 2 FAST, 3 FASTEST)
|
||||
* красный x 220..225 бессмертие (палочка есть = включено)
|
||||
* красный x 220..230 бессмертие (1 палочка = только бой, 2 = и мелкий урон)
|
||||
*
|
||||
* ЦВЕТА — индексы ИГРОВОЙ палитры, и выбраны они не по вкусу, а по двум
|
||||
* ограничениям.
|
||||
@@ -370,7 +370,7 @@ void pop_dbg_room_label(uint8_t room) __banked
|
||||
|
||||
if (imm) { /* бессмертие — красный */
|
||||
setfillstyle(SOLID_FILL, 0x3C);
|
||||
label_bars(220, 1);
|
||||
label_bars(220, imm); /* палочек = уровень (1 или 2) */
|
||||
}
|
||||
room_label_redraw--;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user