362 lines
14 KiB
JavaScript
362 lines
14 KiB
JavaScript
/**
|
|
* GrokDialogues.js
|
|
* ================
|
|
* KRVAVA ŽETEV - Grok Character Dialogues
|
|
*
|
|
* Grok: Zen monk with a massive gong and rainbow vape
|
|
* - Survived the outbreak through meditation
|
|
* - Knows about the Twin Bond
|
|
* - Provides wisdom and support
|
|
* - Sells meditation items and zen upgrades
|
|
*
|
|
* @author NovaFarma Team
|
|
* @date 2025-12-23
|
|
*/
|
|
|
|
const GrokDialogues = {
|
|
// ===== FIRST MEETING =====
|
|
'grok_first_meeting': {
|
|
id: 'grok_first_meeting',
|
|
root: 'intro',
|
|
nodes: {
|
|
'intro': {
|
|
speaker: 'Grok',
|
|
emotion: 'neutral',
|
|
text: '*BOOONG!* The gong vibrates. A monk sits cross-legged, vaping peacefully.\n"Ah... a visitor. Welcome, friend."',
|
|
next: 'kai_response'
|
|
},
|
|
'kai_response': {
|
|
speaker: 'Kai',
|
|
emotion: 'shocked',
|
|
text: 'You... you\'re alive? How did you survive the outbreak?',
|
|
next: 'grok_zen'
|
|
},
|
|
'grok_zen': {
|
|
speaker: 'Grok',
|
|
emotion: 'neutral',
|
|
text: '*exhales pink smoke*\n"Survival is merely a state of mind, dude. The zombies sense no threat in stillness."',
|
|
next: 'grok_question'
|
|
},
|
|
'grok_question': {
|
|
speaker: 'Grok',
|
|
emotion: 'neutral',
|
|
text: 'But I sense... turmoil in you. You search for something. Or... someone?',
|
|
choices: [
|
|
{
|
|
text: '1. My sister was taken. I need to find her.',
|
|
next: 'sister_path',
|
|
action: { type: 'relationship_change', npcId: 'grok', amount: +10 }
|
|
},
|
|
{
|
|
text: '2. That\'s none of your business.',
|
|
next: 'rude_path',
|
|
action: { type: 'relationship_change', npcId: 'grok', amount: -5 }
|
|
},
|
|
{
|
|
text: '3. You seem different. What do you know about Alfa?',
|
|
next: 'alfa_path',
|
|
action: { type: 'relationship_change', npcId: 'grok', amount: +5 }
|
|
}
|
|
]
|
|
},
|
|
|
|
// Sister path
|
|
'sister_path': {
|
|
speaker: 'Grok',
|
|
emotion: 'serious',
|
|
text: 'Ah... the bond of family. I can feel it emanating from you. A twin bond, yes?',
|
|
next: 'grok_twin_wisdom'
|
|
},
|
|
'grok_twin_wisdom': {
|
|
speaker: 'Grok',
|
|
emotion: 'serious',
|
|
text: 'The Alfa virus has amplified your connection. You can FEEL her, can\'t you?\nUse that bond. It will guide you.',
|
|
next: 'grok_teachings'
|
|
},
|
|
|
|
// Rude path
|
|
'rude_path': {
|
|
speaker: 'Grok',
|
|
emotion: 'neutral',
|
|
text: '*takes a long vape hit*\n"Anger and pain... yes, I sense them. They cloud your judgment, friend."',
|
|
next: 'grok_forgiveness'
|
|
},
|
|
'grok_forgiveness': {
|
|
speaker: 'Grok',
|
|
emotion: 'neutral',
|
|
text: 'But I am not offended. The path to inner peace is long. When you are ready to talk, I will be here.',
|
|
next: 'grok_offerings'
|
|
},
|
|
|
|
// Alfa path
|
|
'alfa_path': {
|
|
speaker: 'Grok',
|
|
emotion: 'serious',
|
|
text: 'Alfa... yes. The hybrid strain. It grants control over the undead, but at a cost.',
|
|
next: 'grok_alfa_warning'
|
|
},
|
|
'grok_alfa_warning': {
|
|
speaker: 'Grok',
|
|
emotion: 'serious',
|
|
text: 'The more you command them, the more the virus spreads within you.\nBalance is key. Yin and yang. Control and release.',
|
|
next: 'grok_teachings'
|
|
},
|
|
|
|
// Common ending
|
|
'grok_teachings': {
|
|
speaker: 'Grok',
|
|
emotion: 'happy',
|
|
text: 'I can teach you meditation techniques. They will help strengthen your bond and resist the virus\'s darker urges.',
|
|
next: 'kai_accept'
|
|
},
|
|
'kai_accept': {
|
|
speaker: 'Kai',
|
|
emotion: 'neutral',
|
|
text: 'I... appreciate the offer. But I need to focus on finding Ana.',
|
|
next: 'grok_gift'
|
|
},
|
|
'grok_gift': {
|
|
speaker: 'Grok',
|
|
emotion: 'happy',
|
|
text: '*BOOONG!* Take this meditation guide. When chaos overwhelms you, it will bring clarity.\nAnd friend... may your search bear fruit.',
|
|
next: null,
|
|
action: {
|
|
type: 'quest_complete',
|
|
questId: 'quest_1_2_meet_grok'
|
|
}
|
|
},
|
|
|
|
// Alternative ending for rude path
|
|
'grok_offerings': {
|
|
speaker: 'Grok',
|
|
emotion: 'neutral',
|
|
text: 'I have supplies if you need them. Meditation items, health elixirs, and... special herbs.\n*winks and vapes*',
|
|
next: null
|
|
}
|
|
}
|
|
},
|
|
|
|
// ===== SYMBOL KNOWLEDGE (Quest 1.8) =====
|
|
'grok_symbol_knowledge': {
|
|
id: 'grok_symbol_knowledge',
|
|
root: 'kai_arrives',
|
|
nodes: {
|
|
'kai_arrives': {
|
|
speaker: 'Kai',
|
|
emotion: 'determined',
|
|
text: 'Grok! I found something on the security footage. A symbol. Have you seen it before?',
|
|
next: 'show_symbol'
|
|
},
|
|
'show_symbol': {
|
|
speaker: 'Narrator',
|
|
text: 'You show Grok the sketch of the symbol - a serpent wrapped around a sword.',
|
|
next: 'grok_recognition'
|
|
},
|
|
'grok_recognition': {
|
|
speaker: 'Grok',
|
|
emotion: 'shocked',
|
|
text: '*stops vaping*\n"That symbol... I know it. The Black Serpent Initiative."',
|
|
next: 'kai_what'
|
|
},
|
|
'kai_what': {
|
|
speaker: 'Kai',
|
|
emotion: 'shocked',
|
|
text: 'Black Serpent? Who are they?',
|
|
next: 'grok_explanation'
|
|
},
|
|
'grok_explanation': {
|
|
speaker: 'Grok',
|
|
emotion: 'serious',
|
|
text: 'A shadow organization. Military, but... darker. They\'ve been conducting experiments on Alfa subjects.',
|
|
next: 'grok_warning'
|
|
},
|
|
'grok_warning': {
|
|
speaker: 'Grok',
|
|
emotion: 'worried',
|
|
text: 'If they took your sister, it\'s because she knows something about the virus they want.\nOr worse... she IS what they want.',
|
|
next: 'kai_where'
|
|
},
|
|
'kai_where': {
|
|
speaker: 'Kai',
|
|
emotion: 'angry',
|
|
text: 'Where can I find them? I don\'t care how dangerous it is!',
|
|
next: 'grok_location'
|
|
},
|
|
'grok_location': {
|
|
speaker: 'Grok',
|
|
emotion: 'serious',
|
|
text: 'There\'s a facility to the northeast. Beyond the Deadlands. It\'s heavily guarded...\nbut your zombie army could help you infiltrate.',
|
|
next: 'grok_map'
|
|
},
|
|
'grok_map': {
|
|
speaker: 'Grok',
|
|
emotion: 'neutral',
|
|
text: '*hands you an old map*\n"Here. Mark this location. But Kai... be careful. The Black Serpent doesn\'t take prisoners. Except, it seems, your sister."',
|
|
next: 'kai_thanks'
|
|
},
|
|
'kai_thanks': {
|
|
speaker: 'Kai',
|
|
emotion: 'determined',
|
|
text: 'Thank you, Grok. This is exactly what I needed.',
|
|
next: 'grok_blessing'
|
|
},
|
|
'grok_blessing': {
|
|
speaker: 'Grok',
|
|
emotion: 'happy',
|
|
text: '*BOOONG!*\n"The gong blesses your journey. May the twin bond guide you through the darkness."',
|
|
next: null,
|
|
action: {
|
|
type: 'quest_complete',
|
|
questId: 'quest_1_8_decipher_clues'
|
|
}
|
|
}
|
|
}
|
|
},
|
|
|
|
// ===== CASUAL CONVERSATION =====
|
|
'grok_casual': {
|
|
id: 'grok_casual',
|
|
root: 'greeting',
|
|
nodes: {
|
|
'greeting': {
|
|
speaker: 'Grok',
|
|
emotion: 'happy',
|
|
text: '*BOOONG!*\n"Ah, Kai returns. How goes the search, friend?"',
|
|
choices: [
|
|
{
|
|
text: '1. Any news about the Black Serpent?',
|
|
next: 'news_path'
|
|
},
|
|
{
|
|
text: '2. Can you teach me more about meditation?',
|
|
next: 'meditation_path'
|
|
},
|
|
{
|
|
text: '3. What\'s in that vape?',
|
|
next: 'vape_path'
|
|
},
|
|
{
|
|
text: '4. I need to keep moving. Goodbye.',
|
|
next: 'goodbye'
|
|
}
|
|
]
|
|
},
|
|
|
|
'news_path': {
|
|
speaker: 'Grok',
|
|
emotion: 'serious',
|
|
text: 'Rumors speak of increased activity at their facility. They\'re preparing for something... big.',
|
|
next: 'grok_encouragement'
|
|
},
|
|
'grok_encouragement': {
|
|
speaker: 'Grok',
|
|
emotion: 'neutral',
|
|
text: 'But! I have faith in you. The twin bond is powerful. Use it wisely.',
|
|
next: 'greeting'
|
|
},
|
|
|
|
'meditation_path': {
|
|
speaker: 'Grok',
|
|
emotion: 'happy',
|
|
text: 'Of course! Sit with me. *BOOONG!* Let the gong clear your mind...',
|
|
next: 'meditation_skill',
|
|
action: {
|
|
type: 'custom',
|
|
callback: (scene) => {
|
|
// Grant meditation buff
|
|
scene.player.addBuff?.('meditation', { duration: 60000, effect: 'stamina_regen' });
|
|
}
|
|
}
|
|
},
|
|
'meditation_skill': {
|
|
speaker: 'Narrator',
|
|
text: 'You meditate with Grok. Your mind clears. Stamina regeneration increased for 1 minute.',
|
|
next: 'greeting'
|
|
},
|
|
|
|
'vape_path': {
|
|
speaker: 'Grok',
|
|
emotion: 'happy',
|
|
text: '*takes a hit, exhales rainbow smoke*\n"Special herbs, friend. From before the outbreak. Helps me... stay chill."',
|
|
next: 'vape_joke'
|
|
},
|
|
'vape_joke': {
|
|
speaker: 'Grok',
|
|
emotion: 'happy',
|
|
text: '*offers vape*\n"Want to try? Just kidding. This is MY zen. Find your own!" *laughs*',
|
|
next: 'greeting'
|
|
},
|
|
|
|
'goodbye': {
|
|
speaker: 'Grok',
|
|
emotion: 'neutral',
|
|
text: 'Go with peace, friend. The gong will always welcome you back.\n*BOOONG!*',
|
|
next: null
|
|
}
|
|
}
|
|
},
|
|
|
|
// ===== SHOP DIALOGUE =====
|
|
'grok_shop': {
|
|
id: 'grok_shop',
|
|
root: 'shop_greeting',
|
|
nodes: {
|
|
'shop_greeting': {
|
|
speaker: 'Grok',
|
|
emotion: 'happy',
|
|
text: 'Ah, you seek my wares? I have meditation items, health elixirs, and... special surprises.\n*vapes mysteriously*',
|
|
choices: [
|
|
{
|
|
text: '1. Show me meditation items',
|
|
next: 'meditation_shop',
|
|
action: { type: 'open_shop', category: 'meditation' }
|
|
},
|
|
{
|
|
text: '2. Show me health items',
|
|
next: 'health_shop',
|
|
action: { type: 'open_shop', category: 'health' }
|
|
},
|
|
{
|
|
text: '3. What are the special items?',
|
|
next: 'special_shop',
|
|
action: { type: 'open_shop', category: 'special' }
|
|
},
|
|
{
|
|
text: '4. Never mind, goodbye.',
|
|
next: 'shop_goodbye'
|
|
}
|
|
]
|
|
},
|
|
'meditation_shop': {
|
|
speaker: 'Grok',
|
|
emotion: 'neutral',
|
|
text: 'Browse freely. May you find what your soul needs.',
|
|
next: null
|
|
},
|
|
'health_shop': {
|
|
speaker: 'Grok',
|
|
emotion: 'neutral',
|
|
text: 'The body is a temple. Here are the offerings to maintain it.',
|
|
next: null
|
|
},
|
|
'special_shop': {
|
|
speaker: 'Grok',
|
|
emotion: 'happy',
|
|
text: '*winks*\n"These items are... unique. Gong upgrades, zen decorations, and my signature vape flavors!"',
|
|
next: null
|
|
},
|
|
'shop_goodbye': {
|
|
speaker: 'Grok',
|
|
emotion: 'neutral',
|
|
text: 'Return when the material calls to you. *BOOONG!*',
|
|
next: null
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
// Export
|
|
if (typeof module !== 'undefined' && module.exports) {
|
|
module.exports = GrokDialogues;
|
|
}
|