- Add 3D Hell Tower mode with 10 boss floors, briefings, and outcome tracking across games - Refactor poker.asm by removing >10,600 lines of dead legacy console games and menus - Rebuild poker.exe with clean binary output and update .gitignore
116 lines
4.3 KiB
Python
116 lines
4.3 KiB
Python
def make_db(s):
|
||
b = s.encode('cp1251')
|
||
return ','.join(str(x) for x in b) + ',0'
|
||
|
||
bosses = [
|
||
'БЕС АЗАРТА',
|
||
'ДЕМОН КОСТЕЙ',
|
||
'ЧЕРНОКНИЖНИК',
|
||
'КРУПЬЕ ПРЕИСПОДНЕЙ',
|
||
'ДЕМОН БЛЕФА',
|
||
'ОБРЕЧЕННЫЙ ГРЕШНИК',
|
||
'КОЛЕСО СУДЬБЫ',
|
||
'КАРТОЧНЫЙ ЧЕРТ',
|
||
'ПАЛАЧ КРЮКА',
|
||
'ВЛАДЫКА БАШНИ'
|
||
]
|
||
|
||
games = [
|
||
'Орел и решка',
|
||
'Кости',
|
||
'Черепа и шарик',
|
||
'21 / Очко',
|
||
'Покер',
|
||
'Русская рулетка',
|
||
'Казино-рулетка',
|
||
'Дурак',
|
||
'Крюк: Skill Check',
|
||
'Buckshot Roulette'
|
||
]
|
||
|
||
descs = [
|
||
'Угадай сторону монеты.',
|
||
'Перебрось демона в сумме костей.',
|
||
'Найди душу под черепом.',
|
||
'Собери 21 очко и победи крупье.',
|
||
'Вскрой карты и победи в покер.',
|
||
'1 патрон в барабане: выживи.',
|
||
'Сделай ставку на рулетке.',
|
||
'Оставь чёрта в дураках.',
|
||
'Попади в зону и сорвись с крюка.',
|
||
'Дуэль на дробовиках за жизнь!'
|
||
]
|
||
|
||
lines = []
|
||
lines.append('; --- hell_tower_data.inc: Data for Hell Tower 3D ---')
|
||
lines.append('MODE_HELL_TOWER equ 22')
|
||
lines.append('TOWER_STATE_BRIEFING equ 0')
|
||
lines.append('TOWER_STATE_IN_GAME equ 1')
|
||
lines.append('TOWER_STATE_CLEAR equ 2')
|
||
lines.append('TOWER_STATE_DEFEAT equ 3')
|
||
lines.append('TOWER_STATE_CHAMPION equ 4')
|
||
lines.append('')
|
||
lines.append('InitHellTower3D PROTO')
|
||
lines.append('TowerExitToHall PROTO')
|
||
lines.append('TowerReportRoundOutcome PROTO :DWORD')
|
||
lines.append('RenderTowerInGameBadge PROTO')
|
||
lines.append('')
|
||
lines.append('.data')
|
||
lines.append('towerStage dd 1')
|
||
lines.append('towerFloorState dd 0')
|
||
lines.append('towerAnimClock dd 0')
|
||
lines.append('towerCurrentGame dd 0')
|
||
lines.append('towerPrizeAmount dd 66600')
|
||
lines.append('towerHudText db 91,32,0')
|
||
lines.append('')
|
||
lines.append('towerFloorModes dd MODE_COIN, MODE_DICE, MODE_SKULLS, MODE_BLACKJACK, MODE_POKER, MODE_RUSSIAN, MODE_ROULETTE, MODE_DURAK, MODE_SKILL, MODE_BUCKSHOT')
|
||
lines.append('')
|
||
|
||
for i, b in enumerate(bosses):
|
||
lines.append(f'towerBoss{i+1} db {make_db(b)}')
|
||
lines.append('')
|
||
lines.append('towerBossNames dd ' + ', '.join(f'OFFSET towerBoss{i+1}' for i in range(10)))
|
||
lines.append('')
|
||
|
||
for i, g in enumerate(games):
|
||
lines.append(f'towerGame{i+1} db {make_db(g)}')
|
||
lines.append('')
|
||
lines.append('towerGameNames dd ' + ', '.join(f'OFFSET towerGame{i+1}' for i in range(10)))
|
||
lines.append('')
|
||
|
||
for i, d in enumerate(descs):
|
||
lines.append(f'towerDesc{i+1} db {make_db(d)}')
|
||
lines.append('')
|
||
lines.append('towerDescriptions dd ' + ', '.join(f'OFFSET towerDesc{i+1}' for i in range(10)))
|
||
lines.append('')
|
||
|
||
ui_texts = {
|
||
'towerHeader': 'КАЗИНО 3D - АДСКАЯ БАШНЯ',
|
||
'towerFloorPrefix': 'ЭТАЖ ',
|
||
'towerOfTen': ' / 10',
|
||
'towerEnemyLabel': 'ВРАГ: ',
|
||
'towerGameLabel': 'ИГРА: ',
|
||
'towerRuleText': '10 битв подряд без права на ошибку',
|
||
'towerLossWarning': 'Поражение - возврат в холл казино',
|
||
'towerStartBtn': '[ПРОБЕЛ] В БОЙ',
|
||
'towerEscBtn': '[ESC] СБЕЖАТЬ',
|
||
'towerClearTitle': 'ЭТАЖ ЗАЧИЩЕН! ВРАГ ПОВЕРЖЕН!',
|
||
'towerClearDesc': 'Враг повержен! Впереди новый этаж.',
|
||
'towerNextBtn': '[ПРОБЕЛ] ДАЛЬШЕ',
|
||
'towerDefeatTitle': 'ВЫ ПАЛИ В АДСКОЙ БАШНЕ...',
|
||
'towerDefeatDesc': 'Ваша душа навеки сгорела в Аду.',
|
||
'towerReturnBtn': '[ПРОБЕЛ / ESC] В ХОЛЛ КАЗИНО',
|
||
'towerChampTitle': 'ТРИУМФ! АДСКАЯ БАШНЯ ПОКОРЕНА!',
|
||
'towerChampSubtitle': 'ВЫ - ЧЕМПИОН АДСКОЙ БАШНИ!',
|
||
'towerPrizeText': 'СУПЕРПРИЗ: +$66,600 В БАНКРОЛЛ!',
|
||
'towerHudBadge': 'БАШНЯ: ',
|
||
'towerHudOfTen': '/10',
|
||
}
|
||
|
||
for k, v in ui_texts.items():
|
||
lines.append(f'{k} db {make_db(v)}')
|
||
|
||
with open('src_graphics/hell_tower_data.inc', 'wb') as f:
|
||
f.write(('\n'.join(lines) + '\n').encode('ascii'))
|
||
|
||
print('hell_tower_data.inc regenerated with compact strings.')
|