589 lines
21 KiB
JavaScript
589 lines
21 KiB
JavaScript
/**
|
||
* Game Data - Все данные игры (FENYA EDITION)
|
||
*/
|
||
|
||
const GameData = {
|
||
// Размеры карты
|
||
TILE_SIZE: 40,
|
||
MAP_WIDTH: 20,
|
||
MAP_HEIGHT: 15,
|
||
|
||
// Типы предметов (с иконками)
|
||
ITEM_ICONS: {
|
||
'🍞 Хлеб': '🍞',
|
||
'🍎 Яблоко': '🍎',
|
||
'🥫 Консерва': '🥫',
|
||
'🍜 Остатки': '🍜',
|
||
'🥡 Картонка': '🥡',
|
||
'🥤 Напиток': '🥤',
|
||
'💊 Таблетки': '💊',
|
||
'💊 Лекарства': '💊',
|
||
'📦 Коробка': '📦',
|
||
'🧥 Куртка': '🧥',
|
||
'🧴 Мыло': '🧴',
|
||
'🎫 Билет': '🎫',
|
||
'🛒 Продукты': '🛒',
|
||
'🔪 Заточка': '🔪',
|
||
'🍺 Стекломой': '🍺',
|
||
'💨 Бутырка': '💨',
|
||
'⚱️ Марганцовка': '⚱️',
|
||
'🍾 Водка': '🍾',
|
||
'🍶 Самогон': '🍶',
|
||
'🍷 Плодовоягодное': '🍷'
|
||
},
|
||
|
||
// Еда
|
||
FOOD_ITEMS: ['🍞 Хлеб', '🍎 Яблоко', '🥫 Консерва', '🍜 Остатки', '🥡 Картонка', '🥤 Напиток'],
|
||
|
||
// Полезные предметы
|
||
USEFUL_ITEMS: ['💊 Таблетки', '📦 Коробка', '🧥 Куртка', '🧴 Мыло'],
|
||
|
||
// Оружие
|
||
WEAPONS: ['🔪 Заточка', '🍺 Стекломой'],
|
||
|
||
// Наркотики и алкоголь
|
||
DRUGS: ['💨 Бутырка', '⚱️ Марганцовка'],
|
||
ALCOHOL: ['🍾 Водка', '🍶 Самогон', '🍷 Плодовоягодное'],
|
||
|
||
// Цены и значения
|
||
PRICES: {
|
||
food: 50,
|
||
drink: 30,
|
||
medicine: 100,
|
||
ticket: 50,
|
||
weapons: 200,
|
||
drugs: 150
|
||
},
|
||
|
||
// Эффекты
|
||
EFFECTS: {
|
||
foodHealth: 15,
|
||
foodEnergy: 20,
|
||
pillHealth: 30,
|
||
medicineHealth: 50,
|
||
drinkEnergy: 15,
|
||
restEnergy: 30,
|
||
restHealth: 10,
|
||
bedEnergy: 50,
|
||
bedHealth: 20,
|
||
nightHealthLoss: 5,
|
||
starvationHealthLoss: 0.1,
|
||
drugHigh: 50,
|
||
drugEnergy: 100,
|
||
drugHealthLoss: 20,
|
||
vodkaEnergy: 80,
|
||
vodkaHealthLoss: 15,
|
||
samogonEnergy: 100,
|
||
samogonHealthLoss: 25,
|
||
plodovoEnergy: 60,
|
||
plodovoHealthLoss: 10,
|
||
combatDamage: 15,
|
||
combatEnemyDamage: 10
|
||
},
|
||
|
||
// FENYA - Диалоги и названия
|
||
FENYA: {
|
||
// Приветствия
|
||
greetings: [
|
||
'Здорово, кент!',
|
||
'Чё, как оно?',
|
||
'Привет, бродяга!',
|
||
'Здорово, бомж!'
|
||
],
|
||
|
||
// Прощания
|
||
farewells: [
|
||
'Давай, не пропадай!',
|
||
'Сiao, кент!',
|
||
'Не звезди!',
|
||
'Пока, братва!'
|
||
],
|
||
|
||
// Описания
|
||
descriptions: {
|
||
street: 'Качай двор, кент. Тут можо шариться по мусорняку и на халяву поесть.',
|
||
subway: 'Метро - наша тема. Тепло, народ ходит, можно стрельнуть.',
|
||
hospital: 'Больничка - тут могут подлатать, но халявы нет.',
|
||
shelter: 'Барделка (приют) - перекантоваться можно, но там козлы.',
|
||
park: 'Парк - тут качаются и отдыхают нормальные пацанчики.'
|
||
},
|
||
|
||
// Действия
|
||
actions: {
|
||
search: 'Роюсь в мусоре...',
|
||
rest: 'Отдыхаю, братва...',
|
||
eat: 'Жру, что нашёл...',
|
||
fight: 'Бью морду!'
|
||
}
|
||
},
|
||
|
||
// NPC диалоги (по фене)
|
||
NPC_DIALOGS: {
|
||
// Улица - светлые бомжи
|
||
street: {
|
||
person: [
|
||
'Здорово, кент! Как покатушки?',
|
||
'Чё, в поиске? Я тоже тут торчу.',
|
||
'Видел нормальную малину?',
|
||
'Давай, не сдавайся, брат!',
|
||
'Я тут третий день качаюсь...',
|
||
'Бизнес идёт? Да никак, кент...'
|
||
],
|
||
person2: [
|
||
'Привет, новенький? Я тут главный!',
|
||
'Мусарка за углом - твоя, не лезь в мой район!',
|
||
'Чё, на халяву хочешь? Давай работай!',
|
||
'Я бомж со стажем, кент!'
|
||
]
|
||
},
|
||
|
||
// Барыги (торговцы)
|
||
dealer: [
|
||
'Чё, кент, чё надо?',
|
||
'Есть всё, но за бабки!',
|
||
'Могу подогнать, но дорого!',
|
||
'Хочешь норму - плати!',
|
||
'Стукач? Не, я честный барыга!'
|
||
],
|
||
|
||
// Метро
|
||
subway: {
|
||
musician: [
|
||
'Эй, хороший трек, правда?',
|
||
'Дам бабло, играй ещё!',
|
||
'Слышал новый трек?',
|
||
'Вот это я понимаю - искусство, кент!'
|
||
],
|
||
beggar: [
|
||
'Подай на хлебушек...',
|
||
'Смилуйся, брат...',
|
||
'Три дня не жрал...',
|
||
'Люди злые стали, кент...'
|
||
]
|
||
},
|
||
|
||
// Больница
|
||
hospital: {
|
||
doctor: [
|
||
'Тебе нужна помощь? Приём платный - 200 рублей!',
|
||
'Без бабла не лечим!',
|
||
'Можешь полежать в коридоре, если очень надо!',
|
||
'Вот таблетки от головы, бесплатно'
|
||
],
|
||
nurse: [
|
||
'Доктор сейчас занят...',
|
||
'Очередь на приём - три часа!',
|
||
'Воды хочешь? Бесплатно!',
|
||
'Не шуми, тут больные!'
|
||
],
|
||
patient: [
|
||
'Лежу тут уже третью неделю...',
|
||
'Врачи нормальные, но очередь - жесть!',
|
||
'Хочу домой, но бабла нет на лечение...',
|
||
'Болезнь замучила, кент...'
|
||
]
|
||
},
|
||
|
||
// Приют
|
||
shelter: {
|
||
volunteer: [
|
||
'Привет! Хочешь поесть? Сейчас раздача через час!',
|
||
'Можешь убраться - заплатим 50 рублей!',
|
||
'Вот шмотки, держи, не мёрзни!',
|
||
'Не сдавайся, всё будет норм, кент!',
|
||
'Кровать свободна, отдыхай!'
|
||
]
|
||
},
|
||
|
||
// Парк
|
||
park: {
|
||
jogger: [
|
||
'Бегаю каждый день для здоровья!',
|
||
'Не хочешь присоединиться, кент?',
|
||
'Свежий воздух - это жизнь!'
|
||
],
|
||
dogWalker: [
|
||
'Собаки - наши друзья!',
|
||
'Не трогай их, могут укусить!',
|
||
'Погладь, не бойся!'
|
||
],
|
||
benchPerson: [
|
||
'Красивый парк, правда?',
|
||
'Хорошая погодка для качалки!',
|
||
'Тут всегда тихо, кент...'
|
||
]
|
||
}
|
||
},
|
||
|
||
// Тёмные бомжи (враги ночью)
|
||
DARK_HOMELESS: [
|
||
{ name: 'Отморозок', damage: 10, health: 30, phrase: 'Гони бабло, козёл!' },
|
||
{ name: 'Бомжара', damage: 15, health: 40, phrase: 'Щас тебе наваляю!' },
|
||
{ name: 'Чугун', damage: 20, health: 50, phrase: 'Ты мой, сука!' },
|
||
{ name: 'Кабан', damage: 25, health: 60, phrase: 'Бей его!' }
|
||
],
|
||
|
||
// Лут с врагов
|
||
ENEMY_LOOT: [
|
||
'🍞 Хлеб',
|
||
'🥤 Напиток',
|
||
'💊 Таблетки',
|
||
'💰 Копейка',
|
||
'📦 Коробка'
|
||
],
|
||
|
||
// Цена оружия и алкоголя у барыг
|
||
DEALER_PRICES: {
|
||
'🔪 Заточка': 200,
|
||
'🍺 Стекломой': 150,
|
||
'💨 Бутырка': 100,
|
||
'⚱️ Марганцовка': 200,
|
||
'🍾 Водка': 80,
|
||
'🍶 Самогон': 50,
|
||
'🍷 Плодовоягодное': 30,
|
||
'🍞 Хлеб': 30,
|
||
'🥤 Напиток': 20,
|
||
'💊 Таблетки': 50
|
||
},
|
||
|
||
// Магазины
|
||
SHOPS: {
|
||
street: {
|
||
name: 'Магазин',
|
||
icon: '🏪',
|
||
items: [
|
||
{ item: '🍞 Хлеб', price: 30 },
|
||
{ item: '🥤 Напиток', price: 20 },
|
||
{ item: '💊 Таблетки', price: 80 },
|
||
{ item: '🧴 Мыло', price: 25 },
|
||
{ item: '🧥 Куртка', price: 150 }
|
||
]
|
||
},
|
||
subway: {
|
||
name: 'Киоск',
|
||
icon: '🏪',
|
||
items: [
|
||
{ item: '🍞 Хлеб', price: 25 },
|
||
{ item: '🥤 Напиток', price: 15 },
|
||
{ item: '🎫 Билет', price: 50 }
|
||
]
|
||
},
|
||
hospital: {
|
||
name: 'Аптека',
|
||
icon: '💊',
|
||
items: [
|
||
{ item: '💊 Таблетки', price: 100 },
|
||
{ item: '💊 Лекарства', price: 200 }
|
||
]
|
||
},
|
||
shelter: {
|
||
name: 'Приют',
|
||
icon: '🏠',
|
||
items: [
|
||
{ item: '🍞 Хлеб', price: 10 },
|
||
{ item: '🧥 Куртка', price: 50 },
|
||
{ item: '🧴 Мыло', price: 10 }
|
||
]
|
||
},
|
||
park: {
|
||
name: 'Лавка',
|
||
icon: '🏪',
|
||
items: [
|
||
{ item: '🍎 Яблоко', price: 20 },
|
||
{ item: '🥤 Напиток', price: 25 },
|
||
{ item: '🍜 Остатки', price: 40 }
|
||
]
|
||
}
|
||
},
|
||
|
||
// Карта мира
|
||
WORLD_MAP: {
|
||
name: 'Карта города',
|
||
icon: '🗺️',
|
||
locations: {
|
||
street: { x: 50, y: 50, name: 'Улица', icon: '🏙️', cost: 0 },
|
||
subway: { x: 30, y: 70, name: 'Метро', icon: '🚇', cost: 25 },
|
||
park: { x: 70, y: 30, name: 'Парк', icon: '🌳', cost: 0 },
|
||
hospital: { x: 80, y: 70, name: 'Больница', icon: '🏥', cost: 50 },
|
||
shelter: { x: 20, y: 30, name: 'Приют', icon: '🏠', cost: 30 },
|
||
beach: { x: 10, y: 80, name: 'Пляж', icon: '🏖️', cost: 20 },
|
||
construction: { x: 90, y: 40, name: 'Стройка', icon: '🏗️', cost: 0 },
|
||
river: { x: 60, y: 10, name: 'Река', icon: '🌊', cost: 10 }
|
||
}
|
||
},
|
||
|
||
// Ломбард
|
||
PAWNSHOP: {
|
||
name: 'Ломбард',
|
||
icon: '🏦',
|
||
prices: {
|
||
'🧥 Куртка': 80,
|
||
'🧴 Мыло': 15,
|
||
'🔪 Заточка': 100,
|
||
'🍺 Стекломой': 75,
|
||
'📦 Коробка': 10
|
||
}
|
||
},
|
||
|
||
// Система крафтинга
|
||
CRAFTING_RECIPES: [
|
||
{
|
||
name: '🔪 Заточка',
|
||
ingredients: ['📦 Коробка', '🧴 Мыло'],
|
||
result: '🔪 Заточка',
|
||
description: 'Оружие из подручных материалов',
|
||
damage: 20
|
||
},
|
||
{
|
||
name: '🍺 Стекломой',
|
||
ingredients: ['🍷 Плодовоягодное', '🧴 Мыло'],
|
||
result: '🍺 Стекломой',
|
||
description: 'Оружие из бутылки',
|
||
damage: 15
|
||
},
|
||
{
|
||
name: '🧥 Тёплая куртка',
|
||
ingredients: ['🧥 Куртка', '📦 Коробка'],
|
||
result: '🧥 Тёплая куртка',
|
||
description: 'Защита от холода',
|
||
defense: 10
|
||
},
|
||
{
|
||
name: '🥫 Зелье здоровья',
|
||
ingredients: ['💊 Таблетки', '🥤 Напиток'],
|
||
result: '🥫 Зелье здоровья',
|
||
description: 'Восстанавливает 50 HP',
|
||
heal: 50
|
||
},
|
||
{
|
||
name: '🎒 Усиленный рюкзак',
|
||
ingredients: ['📦 Коробка', '📦 Коробка'],
|
||
result: '🎒 Усиленный рюкзак',
|
||
description: '+5 слотов инвентаря',
|
||
inventory: 5
|
||
}
|
||
],
|
||
|
||
// Система квестов
|
||
QUESTS: {
|
||
// Квесты улицы
|
||
street: [
|
||
{
|
||
id: 'street_1',
|
||
title: 'Найди еду',
|
||
description: 'Найди 3 продукта питания в мусорках',
|
||
icon: '🍞',
|
||
target: 'collect_food',
|
||
targetCount: 3,
|
||
reward: { money: 50 },
|
||
requiredLocation: 'street',
|
||
repeat: false
|
||
},
|
||
{
|
||
id: 'street_2',
|
||
title: 'Защита района',
|
||
description: 'Победи 2 врагов ночью',
|
||
icon: '⚔️',
|
||
target: 'kill_enemies',
|
||
targetCount: 2,
|
||
reward: { money: 100, item: '🔪 Заточка' },
|
||
requiredLocation: 'street',
|
||
repeat: false
|
||
},
|
||
{
|
||
id: 'street_3',
|
||
title: 'Подработка',
|
||
description: 'Найди 100 рублей за день',
|
||
icon: '💰',
|
||
target: 'earn_money',
|
||
targetCount: 100,
|
||
reward: { money: 50 },
|
||
requiredLocation: 'street',
|
||
repeat: true
|
||
}
|
||
],
|
||
// Квесты метро
|
||
subway: [
|
||
{
|
||
id: 'subway_1',
|
||
title: 'Музыкант',
|
||
description: 'Послушай музыканта в метро',
|
||
icon: '🎵',
|
||
target: 'talk_npc',
|
||
targetCount: 1,
|
||
reward: { money: 20 },
|
||
requiredLocation: 'subway',
|
||
repeat: false
|
||
},
|
||
{
|
||
id: 'subway_2',
|
||
title: 'Безбилетник',
|
||
description: 'Проезь без билета 3 раза',
|
||
icon: '🎫',
|
||
target: 'ride_free',
|
||
targetCount: 3,
|
||
reward: { money: 30 },
|
||
requiredLocation: 'subway',
|
||
repeat: true
|
||
}
|
||
],
|
||
// Квесты больницы
|
||
hospital: [
|
||
{
|
||
id: 'hospital_1',
|
||
title: 'Медицинская помощь',
|
||
description: 'Получи лечение в больнице',
|
||
icon: '💉',
|
||
target: 'get_treatment',
|
||
targetCount: 1,
|
||
reward: { health: 50 },
|
||
requiredLocation: 'hospital',
|
||
repeat: true,
|
||
cost: 100
|
||
},
|
||
{
|
||
id: 'hospital_2',
|
||
title: 'Таблетки',
|
||
description: 'Купи 2 упаковки таблеток',
|
||
icon: '💊',
|
||
target: 'buy_item',
|
||
targetCount: 2,
|
||
item: '💊 Таблетки',
|
||
reward: { money: 50 },
|
||
requiredLocation: 'hospital',
|
||
repeat: false
|
||
}
|
||
],
|
||
// Квесты приюта
|
||
shelter: [
|
||
{
|
||
id: 'shelter_1',
|
||
title: 'Уборка',
|
||
description: 'Уберись в приюте за 50 рублей',
|
||
icon: '🧹',
|
||
target: 'work',
|
||
targetCount: 1,
|
||
reward: { money: 50, energy: 30 },
|
||
requiredLocation: 'shelter',
|
||
repeat: true
|
||
},
|
||
{
|
||
id: 'shelter_2',
|
||
title: 'Ночлег',
|
||
description: 'Отдохни в приюте',
|
||
icon: '🛏️',
|
||
target: 'rest',
|
||
targetCount: 1,
|
||
reward: { energy: 50, health: 20 },
|
||
requiredLocation: 'shelter',
|
||
repeat: true
|
||
}
|
||
],
|
||
// Квесты парка
|
||
park: [
|
||
{
|
||
id: 'park_1',
|
||
title: 'Собеседник',
|
||
description: 'Поговори с 3 людьми в парке',
|
||
icon: '💬',
|
||
target: 'talk_npc',
|
||
targetCount: 3,
|
||
reward: { money: 30 },
|
||
requiredLocation: 'park',
|
||
repeat: false
|
||
},
|
||
{
|
||
id: 'park_2',
|
||
title: 'Безопасность',
|
||
description: 'Победи врага в парке',
|
||
icon: '🥊',
|
||
target: 'kill_enemies',
|
||
targetCount: 1,
|
||
reward: { money: 75 },
|
||
requiredLocation: 'park',
|
||
repeat: true
|
||
}
|
||
],
|
||
// Квесты пляжа
|
||
beach: [
|
||
{
|
||
id: 'beach_1',
|
||
title: 'Отдых на пляже',
|
||
description: 'Отдохни на пляже',
|
||
icon: '🏖️',
|
||
target: 'rest',
|
||
targetCount: 1,
|
||
reward: { health: 20, energy: 30 },
|
||
requiredLocation: 'beach',
|
||
repeat: true
|
||
},
|
||
{
|
||
id: 'beach_2',
|
||
title: 'Мусорщик',
|
||
description: 'Найди 5 предметов на пляже',
|
||
icon: '🎣',
|
||
target: 'collect_food',
|
||
targetCount: 5,
|
||
reward: { money: 40 },
|
||
requiredLocation: 'beach',
|
||
repeat: false
|
||
}
|
||
],
|
||
// Квесты стройки
|
||
construction: [
|
||
{
|
||
id: 'construction_1',
|
||
title: 'Рабочий день',
|
||
description: 'Поработай на стройке',
|
||
icon: '🔨',
|
||
target: 'work',
|
||
targetCount: 1,
|
||
reward: { money: 100 },
|
||
requiredLocation: 'construction',
|
||
repeat: true
|
||
},
|
||
{
|
||
id: 'construction_2',
|
||
title: 'Опасная территория',
|
||
description: 'Победи охранника',
|
||
icon: '⚔️',
|
||
target: 'kill_enemies',
|
||
targetCount: 1,
|
||
reward: { money: 150 },
|
||
requiredLocation: 'construction',
|
||
repeat: false
|
||
}
|
||
],
|
||
// Квесты реки
|
||
river: [
|
||
{
|
||
id: 'river_1',
|
||
title: 'Рыбак',
|
||
description: 'Поймай рыбу',
|
||
icon: '🐟',
|
||
target: 'fish',
|
||
targetCount: 1,
|
||
reward: { item: '🍜 Остатки' },
|
||
requiredLocation: 'river',
|
||
repeat: true
|
||
},
|
||
{
|
||
id: 'river_2',
|
||
title: 'Купание',
|
||
description: 'Искупайся в реке',
|
||
icon: '🏊',
|
||
target: 'rest',
|
||
targetCount: 1,
|
||
reward: { health: 15 },
|
||
requiredLocation: 'river',
|
||
repeat: true
|
||
}
|
||
]
|
||
}
|
||
};
|
||
|
||
// Экспорт для использования
|
||
if (typeof module !== 'undefined' && module.exports) {
|
||
module.exports = GameData;
|
||
}
|