This shows you the differences between two versions of the page.
|
gp:laboratoare:06 [2026/03/28 21:56] maria_anca.balutoiu [Implementare în Unity] |
gp:laboratoare:06 [2026/04/08 09:07] (current) maria_anca.balutoiu [Generarea procedurală de NPCs] |
||
|---|---|---|---|
| Line 11: | Line 11: | ||
| === Atribute derivate din clasă === | === Atribute derivate din clasă === | ||
| - | Fiecare clasă definește **intervale de bază** pentru atributele NPC-urilor. Randomizarea se aplică în interiorul acestor intervale, nu global — un Mage va fi mereu mai slab fizic decât un Warrior, indiferent de roll. Exemplu: | + | Fiecare clasă definește **intervale de bază** pentru atributele NPC-urilor. Randomizarea se aplică în interiorul acestor intervale, nu global; un Mage va fi mereu mai slab fizic decât un Warrior, indiferent de roll. Exemplu: |
| ^ Class ^ HP ^ Damage ^ Armor ^ | ^ Class ^ HP ^ Damage ^ Armor ^ | ||
| Line 139: | Line 139: | ||
| - Creați un NPC generator simplist în care: | - Creați un NPC generator simplist în care: | ||
| * Un NPC este definit printr-o combinație aleatoare de nume, clasă, viață, damage. | * Un NPC este definit printr-o combinație aleatoare de nume, clasă, viață, damage. | ||
| - | * Fiecare NPC va avea și o trasătură aleatoare de personalitate, care îi va afecta comportamentul. | + | * Clasa este selectată prin distribuție ponderată. |
| + | * Fiecare NPC va avea și o trasătură aleatoare de personalitate, care modifică numeric atributele de bază. | ||
| * Pe baza clasei asociate, fiecare NPC va avea un portret afișat pe ecran. | * Pe baza clasei asociate, fiecare NPC va avea un portret afișat pe ecran. | ||
| * Se generează un nou NPC și se afișează pe ecran la apăsarea unui buton. | * Se generează un nou NPC și se afișează pe ecran la apăsarea unui buton. | ||
| - Creați un generator de armură și arme în care: | - Creați un generator de armură și arme în care: | ||
| - | * Un item este definit printr-un tip, o raritate, damage și durabilitate. | + | * Un item este definit printr-un tip, o raritate, damage și durabilitate generate din **stat budget**. |
| - | * Item-ele mai rare au și câte o abilitate specială precum poison, lifesteal, fire damage, ice slow. | + | * Itemele Epic și Legendary au abilități speciale cu parametri proprii generați în intervale (exemple abilități: poison, lifesteal, fire damage, ice slow). |
| * Se generează un nou item și se afișează pe ecran la apăsarea unui buton. | * Se generează un nou item și se afișează pe ecran la apăsarea unui buton. | ||
| + | * Numele itemului se generează procedural (prefix + tip). | ||
| * În funcție de raritatea item-ului, scrisul de pe ecran va avea altă culoare. | * În funcție de raritatea item-ului, scrisul de pe ecran va avea altă culoare. | ||
| + | - Implementați simularea unei lumi procedurale: | ||
| + | * Generați 4–6 NPC-uri și distribuiți-le aleatoriu în 5 locații predefinite. | ||
| + | * La apăsarea butonului ''Advance Day'', fiecare NPC execută o acțiune bazată pe personalitate, HP curent și relațiile cu vecinii din aceeași locație. | ||
| + | * Sistemul de relații [−100, +100] se actualizează după fiecare interacțiune și influențează deciziile viitoare. | ||
| + | * Fiecare acțiune generează o linie de text narativ din template-uri cu minim 3 variante per tip. | ||
| + | * Simularea se oprește când rămâne un singur NPC în viață sau după 10 zile și afișează un sumar procedural. | ||
| - **Bonus 1.** Creați un meniu prin care să puteți scrola prin toate personajele și obiectele generate. Rezultatele generări se vor salva pentru a fi accesibile și la rulări ulterioare ale aplicației. Jucătorul va putea redenumi NPCs și item-urile generate. | - **Bonus 1.** Creați un meniu prin care să puteți scrola prin toate personajele și obiectele generate. Rezultatele generări se vor salva pentru a fi accesibile și la rulări ulterioare ale aplicației. Jucătorul va putea redenumi NPCs și item-urile generate. | ||
| - **Bonus 2.** Pentru fiecare item afișați "rarity stars" în dreptul numelui. Adăugați un efect de animație pentru cel mai rar tip de item. | - **Bonus 2.** Pentru fiecare item afișați "rarity stars" în dreptul numelui. Adăugați un efect de animație pentru cel mai rar tip de item. | ||
| + | - **Bonus 3.** Adăugați o hartă vizuală simplă (grid sau icoane) care arată locația curentă a fiecărui NPC și se actualizează la fiecare tick. | ||