No description
  • Java 99.7%
  • Shell 0.3%
Find a file
2026-10-06 23:40:02 +03:00
app Добавить этапы башни, демонов, анимации боя и обновлённый интерфейс 2026-10-06 23:40:02 +03:00
art/source Добавить этапы башни, демонов, анимации боя и обновлённый интерфейс 2026-10-06 23:40:02 +03:00
docs Добавить этапы башни, демонов, анимации боя и обновлённый интерфейс 2026-10-06 23:40:02 +03:00
gradle/wrapper Создать Android-прототип Башни судьбы с графикой и механикой слотов 2026-10-04 01:55:23 +03:00
scripts Создать Android-прототип Башни судьбы с графикой и механикой слотов 2026-10-04 01:55:23 +03:00
tests Добавить этапы башни, демонов, анимации боя и обновлённый интерфейс 2026-10-06 23:40:02 +03:00
.gitignore Создать Android-прототип Башни судьбы с графикой и механикой слотов 2026-10-04 01:55:23 +03:00
AGENTS.md Создать Android-прототип Башни судьбы с графикой и механикой слотов 2026-10-04 01:55:23 +03:00
build.gradle Создать Android-прототип Башни судьбы с графикой и механикой слотов 2026-10-04 01:55:23 +03:00
gradle.properties Создать Android-прототип Башни судьбы с графикой и механикой слотов 2026-10-04 01:55:23 +03:00
gradlew Создать Android-прототип Башни судьбы с графикой и механикой слотов 2026-10-04 01:55:23 +03:00
gradlew.bat Создать Android-прототип Башни судьбы с графикой и механикой слотов 2026-10-04 01:55:23 +03:00
README.md Добавить этапы башни, демонов, анимации боя и обновлённый интерфейс 2026-10-06 23:40:02 +03:00
settings.gradle Создать Android-прототип Башни судьбы с графикой и механикой слотов 2026-10-04 01:55:23 +03:00

Башня судьбы / Fortune Tower

Самостоятельная Android-игра по мотивам механик Tower of Fortune 2: RPG с тремя барабанами, решениями перед боем и восхождением по башне. Это первый играбельный прототип, а не полная копия оригинала. Название приложения, рисунки и тексты созданы для этого проекта; оригинальные ресурсы не используются.

Что реализовано

  • 18 этажей, четыре типа противников и боссы на каждом пятом этаже; разные действия и намерения перед вращением.
  • Меч, щит, жизнь, золото и ярость; одиночные знаки не действуют, пара активирует эффект, тройка даёт джекпот.
  • Один платный переброс выбранного барабана перед подтверждением хода.
  • Уровни, опыт, оружие, отдых в лагере и кузница.
  • Победа на вершине, поражение, подтверждение нового похода.
  • Автосохранение, включая незавершённое вращение; восстановление после поворота и перезапуска.
  • Русский интерфейс, пользовательские изображения и новые спрайты анимаций (бой, персонажи, барабаны, лагерь, финалы и иконка), системные кнопки, основной экран без прокрутки, учёт вырезов и системных панелей.
  • Офлайн: нет разрешения INTERNET, рекламы, платежей, серверов и сторонних игровых библиотек.

Готовая сборка

Debug APK: app/build/outputs/apk/debug/app-debug.apk. APK собран, проверка правил и Android Lint пройдены (0 ошибок, 9 предупреждений). На телефоне или эмуляторе пока не проверен.

Быстрый запуск в Android Studio

  1. Установите Android Studio с поддержкой AGP 8.13.2. В SDK Manager установите Android SDK Platform 36, Build Tools 35.0.0 и Platform Tools.
  2. Откройте эту директорию как проект. Выберите Gradle JDK 17 (или совместимый встроенный JDK) в Settings → Build, Execution, Deployment → Build Tools → Gradle.
  3. Дождитесь Gradle Sync. Android Studio обычно создаёт local.properties с путём к SDK автоматически.
  4. Создайте эмулятор Android 16 / API 36 или подключите телефон с Android 8.0+ и USB debugging.
  5. Запустите конфигурацию app. Первое скачивание инструментов и зависимостей требует сети.

Сборка из терминала

Требуются JDK 17, Android SDK и доступ к Google Maven / Maven Central / Gradle.

export JAVA_HOME=/path/to/jdk-17
export ANDROID_HOME=/path/to/Android/Sdk
export PATH="$JAVA_HOME/bin:$ANDROID_HOME/platform-tools:$PATH"
./gradlew assembleDebug lintDebug
adb install -r app/build/outputs/apk/debug/app-debug.apk

В Windows используйте gradlew.bat и настройте переменные через системные настройки. Wrapper закрепляет Gradle 8.13; отдельно устанавливать Gradle не требуется. Поддерживаются Android 8.0+ (minSdk 26), compileSdk/targetSdk 36 (Android 16). Версии выбраны по таблице совместимости AGP.

Проверки

./scripts/check.sh

Нужен только JDK 17, SDK не нужен. Скрипт компилирует настоящие правила игры и запускает проверки боя, экономии ресурсов, переброса, лагеря, сохранений, смерти, победы всех 125 сочетаний барабанов и 200 походов с фиксированными seed.

Для проверки Android-интеграции выполните ./gradlew assembleDebug lintDebug, затем ручной чек-лист. Сборка без запуска на устройстве не подтверждает корректность интерфейса.

Как играть

Нажмите «Вращать барабаны». При желании нажмите один из знаков для переброса за 3 монеты. Нажмите «Принять результат»: сработает только пара или тройка одинаковых знаков, затем выживший враг выполняет заранее показанное действие. Между ходами можно лечиться и улучшать оружие. Одиночные знаки ничего не дают. Пара даёт эффект двух знаков; джекпот — эффект девяти знаков (три знака ×3). Награда за убийство врага начисляется отдельно. Наберите 100 ярости для автоматического мощного удара. Победите босса 18 этажа.

Интерфейс

HUD героя показывает HP и ярость шкалами с пиктограммами и числами, золото — рядом с монетой. Уровень и опыт видны над шкалами. Под врагом — его шкала HP с сердцем и числовым значением.

Бой и управление находятся на одном экране без прокрутки. Одна кнопка вращает барабаны и затем принимает результат. «Лагерь» открывает лечение и кузницу; «Меню» — правила, характеристики и новый поход. Нажатие на краткий журнал открывает полный результат, на характеристики — подробности героя.

Анимации

Барабаны быстро прокручивают символы и останавливаются по очереди за 0,52 секунды. Переброс одного знака занимает 0,28 секунды.

Действия героя и врага показываются по очереди: выпад, попадание, лечение, щит, ярость, заряд, проклятие, кража и отдых. Во время анимации боевые кнопки отключены. Бой рассчитывается и сохраняется до показа эффектов; перезапуск не повторяет ход. При отключённых системных анимациях эффекты пропускаются.

Намерения врагов

Под HP врага показано его действие на текущий ход. Крыса атакует слабо или крадёт монеты; скелет атакует, защищается или готовит выпад; тень ослабляет удар героя либо готовит атаку; голем готовит тяжёлый удар и отдыхает после него. Босс ниже половины HP меняет тактику. На ходах защиты и ослабления урон героя уменьшается вдвое. Щиты действуют только на текущий ход. Уже объявленный приём не меняется от вращения, переброса или лагеря.

Изображения

Исходники находятся в art/source/. Копии PNG без изменений подключены как Android-ресурсы в app/src/main/res/drawable-nodpi/. Чтобы заменить изображение, скопируйте новый PNG с тем же именем в обе директории и пересоберите проект. Изображения уменьшаются при декодировании, сцена боя сохраняет пропорции 16:9.

Файлы и дальнейшая работа

Референс: Tower of Fortune 2, Game Stew. Американская страница при исследовании отвечала 429; описание проверено по ирландской странице App Store. Точные внутренние вероятности и формулы оригинала неизвестны; баланс прототипа собственный.

Шрифт и оформление

Используется Roboto Slab из Google Fonts, встроенный в APK. Лицензия Apache 2.0 сохранена в docs/licenses и assets приложения. Кнопки нарисованы средствами Android в button_frame.xml и button_primary.xml.