🖼️ REAL CHARACTER PORTRAITS + Age Fix (14)
MAJOR UPDATES: 1. CHARACTER PORTRAITS: ✅ Replaced emoji icons with REAL images ✅ Using kai_master_style33.png ✅ Using ana_master_style33.png ✅ Portrait system updated to use sprites 2. AGE CORRECTION (17→14): ✅ Updated GAME_BIBLE_COMPLETE.md ✅ Updated KRVAVA_ZETEV_GDD.md ✅ Updated COMPLETE_GAME_STORY.md ✅ Kai & Ana now 14-year-old twins 3. STORY REWRITE: ✅ Corrected prologue to match Game Bible ✅ Family attack (not lab breach) ✅ Parents sacrifice themselves ✅ Troll King kidnaps Ana ✅ Kai transforms to Alpha Hybrid ✅ 6 months later - quest begins DIALOGUE CHANGES: - Scene 1: Zombi virus intro - Scene 2: Kai intro (14 years old) - Scene 3: Twin bond - Scene 4: Parents (scientists) - Scene 5: Day 3 attack - Scene 6: Parents sacrifice - Scene 7: Troll King appears - Scene 8: Ana screams - Scene 9: Kai screams - Scene 10: Alpha transformation - Scene 11: 6 months later - Scene 12: Quest begins NOW: Real portraits + correct story + correct age! 🎭💀
This commit is contained in:
@@ -38,6 +38,10 @@ class PrologueScene extends Phaser.Scene {
|
||||
|
||||
this.load.json('prologue_data', 'assets/dialogue/prologue.json');
|
||||
|
||||
// Load character portraits
|
||||
this.load.image('kai_portrait', 'reference_images/kai_master_style33.png');
|
||||
this.load.image('ana_portrait', 'reference_images/ana_master_style33.png');
|
||||
|
||||
// Load prologue voiceover audio files (Slovenian WAV format)
|
||||
for (let i = 1; i <= 19; i++) {
|
||||
const num = i.toString().padStart(2, '0');
|
||||
@@ -45,6 +49,7 @@ class PrologueScene extends Phaser.Scene {
|
||||
}
|
||||
|
||||
console.log('🎤 Loading 19 Slovenian prologue voiceover files...');
|
||||
console.log('🖼️ Loading character portraits...');
|
||||
}
|
||||
|
||||
create() {
|
||||
@@ -64,108 +69,110 @@ class PrologueScene extends Phaser.Scene {
|
||||
|
||||
if (!this.dialogueData) {
|
||||
console.warn('⚠️ Using fallback hardcoded dialogue!');
|
||||
// FALLBACK: Extended Slovenian dialogue (12 scenes)
|
||||
// CORRECT STORY: 14-year-old twins, family sacrifice, Troll King kidnapping
|
||||
this.dialogueData = [
|
||||
{
|
||||
id: 'prologue_01',
|
||||
speaker: "NARRATOR",
|
||||
text: "Leto 2084. Svet, kot smo ga poznali, je padel.",
|
||||
background: "lab",
|
||||
text: "Leto 2084. Zombi virus je uničil svet.",
|
||||
background: "ruins",
|
||||
bgColor: 0x1a1a2e,
|
||||
portrait: null
|
||||
},
|
||||
{
|
||||
id: 'prologue_02',
|
||||
speaker: "NARRATOR",
|
||||
text: "Zombi virus je uničil civilizacijo. Preživeli se borijo za vsak nov dan.",
|
||||
background: "ruins",
|
||||
speaker: "KAI",
|
||||
text: "Moje ime je Kai Marković. Star sem štirinajst let.",
|
||||
background: "lab",
|
||||
bgColor: 0x2d1b00,
|
||||
portrait: null,
|
||||
flash: true
|
||||
portrait: "kai_neutral"
|
||||
},
|
||||
{
|
||||
id: 'prologue_03',
|
||||
speaker: "KAI",
|
||||
text: "Ime mi je Kai. Z dvojno sestro Ano sva bila najboljša znanstvenika na področju virusologije.",
|
||||
text: "Moja dvojčica Ana in jaz, sva zelo povezana. Nezlomljiv vez.",
|
||||
background: "lab",
|
||||
bgColor: 0x2d4a1e,
|
||||
portrait: "kai_neutral"
|
||||
},
|
||||
{
|
||||
id: 'prologue_04',
|
||||
speaker: "KAI",
|
||||
text: "Naša starša sta bila znanstvenika. Raziskovala sta virusne mutacije.",
|
||||
background: "lab",
|
||||
bgColor: 0x1a1a2e,
|
||||
portrait: "kai_neutral"
|
||||
},
|
||||
{
|
||||
id: 'prologue_04',
|
||||
speaker: "ANA",
|
||||
text: "Kai, poglejva! Uspelo nama je izolirati Alfa strain! To bi lahko bila rešitev!",
|
||||
background: "lab",
|
||||
bgColor: 0x1a1a2e,
|
||||
portrait: "ana_excited"
|
||||
},
|
||||
{
|
||||
id: 'prologue_05',
|
||||
speaker: "KAI",
|
||||
text: "Ana je vedno bila optimistična. Jaz? Bil sem previdnejši.",
|
||||
background: "lab",
|
||||
bgColor: 0x1a1a2e,
|
||||
portrait: "kai_worried"
|
||||
},
|
||||
{
|
||||
id: 'prologue_06',
|
||||
speaker: "NARRATOR",
|
||||
text: "⚠️ ALARM! BREACH IN SECTOR 7! ⚠️",
|
||||
background: "lab_alarm",
|
||||
text: "Tretji dan izbruha. Horda zombijev napada družinsko hišo.",
|
||||
background: "lab_chaos",
|
||||
bgColor: 0x660000,
|
||||
portrait: null,
|
||||
shake: true,
|
||||
flash: true
|
||||
},
|
||||
{
|
||||
id: 'prologue_06',
|
||||
speaker: "NARRATOR",
|
||||
text: "Starša se žrtvujeta, da rešita dvojčka. Zadnji besede: 'Beži, Kai! Zaščiti Ano!'",
|
||||
background: "lab_chaos",
|
||||
bgColor: 0x3d0000,
|
||||
portrait: null,
|
||||
shake: true
|
||||
},
|
||||
{
|
||||
id: 'prologue_07',
|
||||
speaker: "NARRATOR",
|
||||
text: "Iz senc se pojavi Orjaški Troll Kralj. Poslal ga je zlobni doktor Krnić.",
|
||||
background: "lab_alarm",
|
||||
bgColor: 0x2d0000,
|
||||
portrait: null,
|
||||
shake: true
|
||||
},
|
||||
{
|
||||
id: 'prologue_08',
|
||||
speaker: "ANA",
|
||||
text: "KAI! REŠI ME! KAIII!",
|
||||
background: "lab_chaos",
|
||||
bgColor: 0x3d0000,
|
||||
portrait: "ana_pain",
|
||||
shake: true
|
||||
},
|
||||
{
|
||||
id: 'prologue_09',
|
||||
speaker: "KAI",
|
||||
text: "Zombiji! So vdrli v laboratorij! Ana, BEŽI!",
|
||||
text: "ANA! NE! VRNITE MI JO!",
|
||||
background: "lab_chaos",
|
||||
bgColor: 0x3d0000,
|
||||
portrait: "kai_shocked",
|
||||
shake: true
|
||||
},
|
||||
{
|
||||
id: 'prologue_08',
|
||||
speaker: "ANA",
|
||||
text: "Vzorci! Moram jih zaščititi! Ti beži, Kai! BEŽI!",
|
||||
background: "lab_chaos",
|
||||
bgColor: 0x3d0000,
|
||||
portrait: "ana_determined"
|
||||
},
|
||||
{
|
||||
id: 'prologue_09',
|
||||
speaker: "KAI",
|
||||
text: "Nato je sledila eksplozija. Ko sem se zbudil... Ana je bila izginila.",
|
||||
id: 'prologue_10',
|
||||
speaker: "NARRATOR",
|
||||
text: "Kai se spremeni v Alfa Hibrida. Vijolične oči. Moč nadzora nad zombiji.",
|
||||
background: "ruins",
|
||||
bgColor: 0x1a1a1a,
|
||||
portrait: "kai_pain",
|
||||
bgColor: 0x4a1a4a,
|
||||
portrait: null,
|
||||
flash: true
|
||||
},
|
||||
{
|
||||
id: 'prologue_10',
|
||||
speaker: "KAI",
|
||||
text: "Našel sem le njen laboratorijski plašč. In kri. Njeno kri...",
|
||||
background: "ruins",
|
||||
bgColor: 0x1a1a1a,
|
||||
portrait: "kai_confused"
|
||||
},
|
||||
{
|
||||
id: 'prologue_11',
|
||||
speaker: "KAI",
|
||||
text: "Ampak trupla ni bilo. To pomeni... mogoče živi. Moram jo najti!",
|
||||
background: "farm",
|
||||
bgColor: 0x2d4a1e,
|
||||
portrait: "kai_determined"
|
||||
},
|
||||
{
|
||||
id: 'prologue_12',
|
||||
speaker: "NARRATOR",
|
||||
text: "In tako se začne Kaijevo potovanje skozi Mrtvo dolino. Iskanje Ane. Iskanje upanja.",
|
||||
text: "Šest mesecev kasneje. Kai se zbudi na majhni kmetiji. Ana je izginila.",
|
||||
background: "farm",
|
||||
bgColor: 0x2d4a1e,
|
||||
portrait: null
|
||||
},
|
||||
{
|
||||
id: 'prologue_12',
|
||||
speaker: "KAI",
|
||||
text: "Moram jo najti. Ne glede na to, kaj bo potrebno. Ana, prihajam!",
|
||||
background: "farm",
|
||||
bgColor: 0x2d4a1e,
|
||||
portrait: "kai_determined"
|
||||
}
|
||||
];
|
||||
}
|
||||
@@ -265,10 +272,11 @@ class PrologueScene extends Phaser.Scene {
|
||||
this.portraitBg = this.add.rectangle(width - 150, dialogueY + 90, 120, 120, 0x4a3520, 0.9);
|
||||
this.portraitBg.setStrokeStyle(2, 0xd4a574);
|
||||
|
||||
this.portraitText = this.add.text(width - 150, dialogueY + 90, '', {
|
||||
fontSize: '60px'
|
||||
});
|
||||
this.portraitText.setOrigin(0.5);
|
||||
// Portrait image sprite (instead of emoji text)
|
||||
this.portraitImage = this.add.sprite(width - 150, dialogueY + 90, 'kai_portrait');
|
||||
this.portraitImage.setOrigin(0.5);
|
||||
this.portraitImage.setDisplaySize(100, 100); // Fit in portrait box
|
||||
this.portraitImage.setVisible(false);
|
||||
|
||||
// Background sprite (will be created per dialogue)
|
||||
this.backgroundSprite = null;
|
||||
@@ -428,31 +436,23 @@ class PrologueScene extends Phaser.Scene {
|
||||
updatePortrait(portraitKey) {
|
||||
if (!portraitKey) {
|
||||
this.portraitBg.setVisible(false);
|
||||
this.portraitText.setVisible(false);
|
||||
this.portraitImage.setVisible(false);
|
||||
return;
|
||||
}
|
||||
|
||||
this.portraitBg.setVisible(true);
|
||||
this.portraitText.setVisible(true);
|
||||
this.portraitImage.setVisible(true);
|
||||
|
||||
// Simple emoji portraits for now
|
||||
// TODO: Replace with actual character art
|
||||
const portraits = {
|
||||
'kai_neutral': '👨',
|
||||
'kai_worried': '😟',
|
||||
'kai_shocked': '😱',
|
||||
'kai_pain': '😫',
|
||||
'kai_confused': '😕',
|
||||
'kai_determined': '😠',
|
||||
'kai_anger': '😡',
|
||||
'kai_realization': '🤔',
|
||||
'ana_excited': '👩🔬',
|
||||
'ana_serious': '😐',
|
||||
'ana_determined': '💪',
|
||||
'ana_pain': '😣'
|
||||
};
|
||||
|
||||
this.portraitText.setText(portraits[portraitKey] || '❓');
|
||||
// Map portrait keys to actual character images
|
||||
// For now, all Kai variants use kai_portrait, all Ana use ana_portrait
|
||||
if (portraitKey.startsWith('kai_')) {
|
||||
this.portraitImage.setTexture('kai_portrait');
|
||||
} else if (portraitKey.startsWith('ana_')) {
|
||||
this.portraitImage.setTexture('ana_portrait');
|
||||
} else {
|
||||
// Default fallback
|
||||
this.portraitImage.setVisible(false);
|
||||
}
|
||||
}
|
||||
|
||||
advanceDialogue() {
|
||||
|
||||
Reference in New Issue
Block a user