434 lines
14 KiB
JavaScript
434 lines
14 KiB
JavaScript
/**
|
|
* RomanceableNPCsData.js
|
|
* ======================
|
|
* KRVAVA ŽETEV - 12 Romanceable NPCs Definition
|
|
*
|
|
* Each NPC has:
|
|
* - Gift preferences
|
|
* - Birthday
|
|
* - Romance questline
|
|
* - Unique personality
|
|
*
|
|
* @author NovaFarma Team
|
|
* @date 2025-12-23
|
|
*/
|
|
|
|
const RomanceableNPCsData = {
|
|
/**
|
|
* 1. LENA - The Farmer's Daughter
|
|
*/
|
|
lena: {
|
|
id: 'lena',
|
|
name: 'Lena',
|
|
gender: 'female',
|
|
age: 22,
|
|
occupation: 'Farmer',
|
|
personality: 'Sweet, hardworking, loves nature',
|
|
|
|
// Gift preferences
|
|
lovedItems: ['sunflower', 'strawberry', 'cheese', 'daffodil'],
|
|
likedItems: ['wheat', 'corn', 'milk', 'egg'],
|
|
dislikedItems: ['beer', 'sushi'],
|
|
hatedItems: ['trash', 'rotten_food'],
|
|
|
|
// Birthday
|
|
birthday: { season: 'Spring', day: 7 },
|
|
|
|
// Romance questline: "First Harvest Together"
|
|
questline: {
|
|
id: 'romance_lena',
|
|
title: 'First Harvest Together',
|
|
description: 'Help Lena with her harvest and grow closer.',
|
|
objectives: [
|
|
{ id: 'help_plant', type: 'action', description: 'Plant 20 crops with Lena' },
|
|
{ id: 'gift_flowers', type: 'item', description: 'Give Lena a bouquet' },
|
|
{ id: 'harvest_together', type: 'event', description: 'Harvest together on sunny day' }
|
|
],
|
|
rewards: { hearts: 2, item: 'lena_photo' }
|
|
},
|
|
|
|
// Married life
|
|
marriedAbility: 'waters_20_crops', // Waters 20 crops every morning
|
|
favoriteMeal: 'vegetable_soup'
|
|
},
|
|
|
|
/**
|
|
* 2. KATARINA - The Treasure Hunter
|
|
*/
|
|
katarina: {
|
|
id: 'katarina',
|
|
name: 'Katarina',
|
|
gender: 'female',
|
|
age: 24,
|
|
occupation: 'Treasure Hunter',
|
|
personality: 'Adventurous, brave, loves mysteries',
|
|
|
|
lovedItems: ['diamond', 'emerald', 'ruby', 'ancient_relic'],
|
|
likedItems: ['gold_bar', 'silver_ore', 'map'],
|
|
dislikedItems: ['flowers', 'cake'],
|
|
hatedItems: ['trash'],
|
|
|
|
birthday: { season: 'Summer', day: 15 },
|
|
|
|
questline: {
|
|
id: 'romance_katarina',
|
|
title: 'Treasure Hunt',
|
|
description: 'Find ancient treasure with Katarina.',
|
|
objectives: [
|
|
{ id: 'find_map', type: 'item', description: 'Find treasure map in mines' },
|
|
{ id: 'explore_cave', type: 'location', description: 'Explore hidden cave together' },
|
|
{ id: 'defeat_boss', type: 'combat', description: 'Defeat guardian boss' }
|
|
],
|
|
rewards: { hearts: 2, item: 'ancient_ring' }
|
|
},
|
|
|
|
marriedAbility: 'finds_gems', // Finds random gems daily
|
|
favoriteMeal: 'spicy_curry'
|
|
},
|
|
|
|
/**
|
|
* 3. SONYA - The Village Healer
|
|
*/
|
|
sonya: {
|
|
id: 'sonya',
|
|
name: 'Sonya',
|
|
gender: 'female',
|
|
age: 26,
|
|
occupation: 'Healer',
|
|
personality: 'Kind, caring, compassionate',
|
|
|
|
lovedItems: ['healing_herb', 'flower_bouquet', 'honey', 'tea'],
|
|
likedItems: ['berry', 'mushroom', 'medicinal_plant'],
|
|
dislikedItems: ['weapon', 'bomb'],
|
|
hatedItems: ['poison', 'trash'],
|
|
|
|
birthday: { season: 'Fall', day: 3 },
|
|
|
|
questline: {
|
|
id: 'romance_sonya',
|
|
title: 'Save the Village',
|
|
description: 'Help Sonya cure a village plague.',
|
|
objectives: [
|
|
{ id: 'gather_herbs', type: 'item', description: 'Collect 30 healing herbs' },
|
|
{ id: 'brew_potion', type: 'craft', description: 'Brew cure potion' },
|
|
{ id: 'cure_villagers', type: 'event', description: 'Distribute cure' }
|
|
],
|
|
rewards: { hearts: 2, item: 'sonya_necklace' }
|
|
},
|
|
|
|
marriedAbility: 'makes_potions', // Crafts healing potions daily
|
|
favoriteMeal: 'herbal_tea'
|
|
},
|
|
|
|
/**
|
|
* 4. MIRA - The Artist
|
|
*/
|
|
mira: {
|
|
id: 'mira',
|
|
name: 'Mira',
|
|
gender: 'female',
|
|
age: 23,
|
|
occupation: 'Painter',
|
|
personality: 'Creative, dreamy, romantic',
|
|
|
|
lovedItems: ['rose', 'lily', 'rainbow_shell', 'butterfly'],
|
|
likedItems: ['fruit', 'flower', 'gem'],
|
|
dislikedItems: ['coal', 'stone'],
|
|
hatedItems: ['trash', 'slime'],
|
|
|
|
birthday: { season: 'Spring', day: 21 },
|
|
|
|
questline: {
|
|
id: 'romance_mira',
|
|
title: 'Paint the Sunset',
|
|
description: 'Be Mira\'s muse for her masterpiece.',
|
|
objectives: [
|
|
{ id: 'pose_sunset', type: 'event', description: 'Pose at sunset beach' },
|
|
{ id: 'gather_pigments', type: 'item', description: 'Find rare pigments' },
|
|
{ id: 'finish_painting', type: 'event', description: 'Unveil the masterpiece' }
|
|
],
|
|
rewards: { hearts: 2, item: 'portrait_of_you' }
|
|
},
|
|
|
|
marriedAbility: 'decorates_house', // Adds furniture daily
|
|
favoriteMeal: 'fruit_salad'
|
|
},
|
|
|
|
/**
|
|
* 5. ELENA - Ana's Best Friend
|
|
*/
|
|
elena: {
|
|
id: 'elena',
|
|
name: 'Elena',
|
|
gender: 'female',
|
|
age: 25,
|
|
occupation: 'Scientist',
|
|
personality: 'Intelligent, loyal, knows Ana well',
|
|
|
|
lovedItems: ['ancient_book', 'crystal', 'research_note', 'coffee'],
|
|
likedItems: ['metal_bar', 'battery', 'circuit'],
|
|
dislikedItems: ['alcohol', 'junk'],
|
|
hatedItems: ['trash'],
|
|
|
|
birthday: { season: 'Winter', day: 14 },
|
|
|
|
questline: {
|
|
id: 'romance_elena',
|
|
title: 'Ana\'s Legacy',
|
|
description: 'Help Elena continue Ana\'s research.',
|
|
objectives: [
|
|
{ id: 'find_notes', type: 'item', description: 'Find Ana\'s research notes' },
|
|
{ id: 'complete_formula', type: 'craft', description: 'Complete Ana\'s formula' },
|
|
{ id: 'honor_ana', type: 'event', description: 'Build memorial together' }
|
|
],
|
|
rewards: { hearts: 2, item: 'ana_photo', bondStrength: +10 }
|
|
},
|
|
|
|
marriedAbility: 'research_boost', // Grants research XP boost
|
|
favoriteMeal: 'coffee_cake'
|
|
},
|
|
|
|
/**
|
|
* 6. TRIBAL PRINCESS - Jungle Daughter
|
|
*/
|
|
tribal_princess: {
|
|
id: 'tribal_princess',
|
|
name: 'Kaia',
|
|
gender: 'female',
|
|
age: 21,
|
|
occupation: 'Tribal Princess',
|
|
personality: 'Wild, fierce, protective',
|
|
|
|
lovedItems: ['feather', 'bone', 'spear', 'drum'],
|
|
likedItems: ['meat', 'hide', 'stone_tool'],
|
|
dislikedItems: ['refined_food', 'fancy_clothes'],
|
|
hatedItems: ['trash', 'pollution'],
|
|
|
|
birthday: { season: 'Summer', day: 28 },
|
|
|
|
questline: {
|
|
id: 'romance_tribal',
|
|
title: 'Prove Your Worth',
|
|
description: 'Complete tribal trials to win her heart.',
|
|
objectives: [
|
|
{ id: 'hunt_beast', type: 'combat', description: 'Hunt jungle beast' },
|
|
{ id: 'climb_mountain', type: 'event', description: 'Climb sacred mountain' },
|
|
{ id: 'earn_blessing', type: 'event', description: 'Get chief\'s blessing' }
|
|
],
|
|
rewards: { hearts: 2, item: 'tribal_crown' }
|
|
},
|
|
|
|
marriedAbility: 'hunts_food', // Brings back meat daily
|
|
favoriteMeal: 'roasted_meat'
|
|
},
|
|
|
|
/**
|
|
* 7. MERMAID - Atlantis Beauty
|
|
*/
|
|
mermaid: {
|
|
id: 'mermaid',
|
|
name: 'Marina',
|
|
gender: 'female',
|
|
age: 120, // Looks 20!
|
|
occupation: 'Atlantis Princess',
|
|
personality: 'Mystical, elegant, loves ocean',
|
|
|
|
lovedItems: ['pearl', 'coral', 'sea_shell', 'fish'],
|
|
likedItems: ['seaweed', 'starfish', 'oyster'],
|
|
dislikedItems: ['fire', 'lava'],
|
|
hatedItems: ['pollution', 'trash'],
|
|
|
|
birthday: { season: 'Summer', day: 1 },
|
|
|
|
questline: {
|
|
id: 'romance_mermaid',
|
|
title: 'Save Atlantis',
|
|
description: 'Help Marina save her underwater kingdom.',
|
|
objectives: [
|
|
{ id: 'dive_deep', type: 'location', description: 'Reach Atlantis' },
|
|
{ id: 'defeat_kraken', type: 'combat', description: 'Slay the Kraken' },
|
|
{ id: 'restore_trident', type: 'craft', description: 'Repair Neptune\'s Trident' }
|
|
],
|
|
rewards: { hearts: 2, item: 'atlantis_crown' }
|
|
},
|
|
|
|
marriedAbility: 'catches_fish', // Brings legendary fish daily
|
|
favoriteMeal: 'sushi_platter'
|
|
},
|
|
|
|
/**
|
|
* 8. VALKYRIE - Norse Warrior
|
|
*/
|
|
valkyrie: {
|
|
id: 'valkyrie',
|
|
name: 'Freya',
|
|
gender: 'female',
|
|
age: 500, // Looks 25!
|
|
occupation: 'Valkyrie Warrior',
|
|
personality: 'Warrior, honorable, loves battle',
|
|
|
|
lovedItems: ['sword', 'shield', 'armor', 'mead'],
|
|
likedItems: ['metal', 'weapon', 'gold'],
|
|
dislikedItems: ['flower', 'cake'],
|
|
hatedItems: ['cowardice', 'dishonor'],
|
|
|
|
birthday: { season: 'Winter', day: 21 },
|
|
|
|
questline: {
|
|
id: 'romance_valkyrie',
|
|
title: 'Trial by Combat',
|
|
description: 'Prove your strength to earn her respect.',
|
|
objectives: [
|
|
{ id: 'defeat_warriors', type: 'combat', description: 'Defeat 10 warriors' },
|
|
{ id: 'forge_weapon', type: 'craft', description: 'Forge legendary weapon' },
|
|
{ id: 'duel_freya', type: 'combat', description: 'Duel Freya (and win!)' }
|
|
],
|
|
rewards: { hearts: 2, item: 'valkyrie_ring' }
|
|
},
|
|
|
|
marriedAbility: 'combat_buff', // Grants +20% damage
|
|
favoriteMeal: 'roasted_boar'
|
|
},
|
|
|
|
/**
|
|
* 9. PRIESTESS - Temple Guardian
|
|
*/
|
|
priestess: {
|
|
id: 'priestess',
|
|
name: 'Aria',
|
|
gender: 'female',
|
|
age: 27,
|
|
occupation: 'Temple Priestess',
|
|
personality: 'Spiritual, wise, mysterious',
|
|
|
|
lovedItems: ['incense', 'prayer_beads', 'sacred_scroll', 'lotus'],
|
|
likedItems: ['candle', 'holy_water', 'gold'],
|
|
dislikedItems: ['cursed_item', 'dark_magic'],
|
|
hatedItems: ['evil_artifact', 'blood'],
|
|
|
|
birthday: { season: 'Spring', day: 1 },
|
|
|
|
questline: {
|
|
id: 'romance_priestess',
|
|
title: 'Decode the Scroll',
|
|
description: 'Help Aria decipher ancient prophecy.',
|
|
objectives: [
|
|
{ id: 'find_scrolls', type: 'item', description: 'Find 5 sacred scrolls' },
|
|
{ id: 'translate', type: 'event', description: 'Translate together' },
|
|
{ id: 'fulfill_prophecy', type: 'event', description: 'Complete prophecy ritual' }
|
|
],
|
|
rewards: { hearts: 2, item: 'priestess_blessing' }
|
|
},
|
|
|
|
marriedAbility: 'daily_blessing', // Grants random buff daily
|
|
favoriteMeal: 'blessed_bread'
|
|
},
|
|
|
|
/**
|
|
* 10. SCOTTISH LASS - Highland Beauty
|
|
*/
|
|
scottish_lass: {
|
|
id: 'scottish_lass',
|
|
name: 'Fiona',
|
|
gender: 'female',
|
|
age: 23,
|
|
occupation: 'Highland Shepherdess',
|
|
personality: 'Feisty, proud, loves music',
|
|
|
|
lovedItems: ['bagpipe', 'whiskey', 'wool', 'thistle'],
|
|
likedItems: ['sheep', 'plaid', 'shortbread'],
|
|
dislikedItems: ['english_tea', 'salmon'], // Rivalry!
|
|
hatedItems: ['trash'],
|
|
|
|
birthday: { season: 'Fall', day: 30 },
|
|
|
|
questline: {
|
|
id: 'romance_scottish',
|
|
title: 'Highland Games',
|
|
description: 'Win the Highland Games for her favor.',
|
|
objectives: [
|
|
{ id: 'caber_toss', type: 'minigame', description: 'Win caber toss' },
|
|
{ id: 'stone_put', type: 'minigame', description: 'Win stone put' },
|
|
{ id: 'bagpipe_duel', type: 'minigame', description: 'Bagpipe battle!' }
|
|
],
|
|
rewards: { hearts: 2, item: 'scottish_kilt' }
|
|
},
|
|
|
|
marriedAbility: 'shears_sheep', // Collects wool daily
|
|
favoriteMeal: 'haggis' // Yes, really!
|
|
},
|
|
|
|
/**
|
|
* 11. DINO KEEPER - Jurassic Beauty
|
|
*/
|
|
dino_keeper: {
|
|
id: 'dino_keeper',
|
|
name: 'Petra',
|
|
gender: 'female',
|
|
age: 24,
|
|
occupation: 'Dinosaur Keeper',
|
|
personality: 'Adventurous, loves prehistoric',
|
|
|
|
lovedItems: ['dino_egg', 'fossil', 'amber', 'fern'],
|
|
likedItems: ['bone', 'scale', 'claw'],
|
|
dislikedItems: ['modern_tech', 'plastic'],
|
|
hatedItems: ['trash', 'pollution'],
|
|
|
|
birthday: { season: 'Summer', day: 20 },
|
|
|
|
questline: {
|
|
id: 'romance_dino',
|
|
title: 'Tame the T-Rex',
|
|
description: 'Help Petra tame a T-Rex.',
|
|
objectives: [
|
|
{ id: 'find_trex', type: 'location', description: 'Find T-Rex nest' },
|
|
{ id: 'gather_meat', type: 'item', description: 'Collect 50 prime meat' },
|
|
{ id: 'tame_trex', type: 'event', description: 'Successfully tame T-Rex' }
|
|
],
|
|
rewards: { hearts: 2, item: 'dino_saddle' }
|
|
},
|
|
|
|
marriedAbility: 'tames_dinos', // Brings baby dino daily
|
|
favoriteMeal: 'dino_steak'
|
|
},
|
|
|
|
/**
|
|
* 12. GHOST GIRL - Restless Spirit
|
|
*/
|
|
ghost_girl: {
|
|
id: 'ghost_girl',
|
|
name: 'Lilith',
|
|
gender: 'female',
|
|
age: 18, // Died at 18, 200 years ago
|
|
occupation: 'Ghost',
|
|
personality: 'Melancholic, lonely, loves life',
|
|
|
|
lovedItems: ['flower', 'candle', 'music_box', 'photo'],
|
|
likedItems: ['book', 'poetry', 'moonstone'],
|
|
dislikedItems: ['holy_water', 'exorcism_salt'],
|
|
hatedItems: ['evil_artifact'],
|
|
|
|
birthday: { season: 'Fall', day: 31 }, // Halloween!
|
|
|
|
questline: {
|
|
id: 'romance_ghost',
|
|
title: 'Resurrection Ritual',
|
|
description: 'Find a way to bring Lilith back to life.',
|
|
objectives: [
|
|
{ id: 'find_spell', type: 'item', description: 'Find resurrection spell' },
|
|
{ id: 'gather_components', type: 'item', description: 'Collect ritual items' },
|
|
{ id: 'perform_ritual', type: 'event', description: 'Complete ritual at midnight' }
|
|
],
|
|
rewards: { hearts: 2, item: 'life_crystal', special: 'lilith_becomes_alive' }
|
|
},
|
|
|
|
marriedAbility: 'ghost_powers', // Phase through walls, find secrets
|
|
favoriteMeal: 'soul_cake' // Special ghost food
|
|
}
|
|
};
|
|
|
|
// Export
|
|
if (typeof module !== 'undefined' && module.exports) {
|
|
module.exports = RomanceableNPCsData;
|
|
}
|