Stats (0 - 100)
From Red to Green

Short-term
1. Mood
2. Energy
3. Arousal

Long-term (regular activity increases, if not, deteriorate)
1. Attractiveness
2. Fitness
3. Intelligence
4. Interpersonal Skills
5. Perversion

Relationship
1. OpinionOfPlayer
2. PlayerOpinion
4. 

Inventory
1. Money (in local currency)
2. Apparel (buff to attractiveness, with tags for work, formal, casual, sports etc)
3. All other items

Effect:
1. Hungry
2. Ill
3. Injured



Array of Structs as default variable in Person class:
Stat (String) - Value (Float) - enabled (bool)

BuildingVisited struct
UID (int) - Building (StreetMapBuilding) - Persons (Person[])

PlaceBuilding struct
Place (String) - Buildings (StreetMapBuilding[]) 

RelationshipPersons struct
Relationship (String) - Persons (Person ObjectReference[]) - enabled (bool)

Start game with a base person with invisible render
Read data and populate this array in base person
Dupicate base person - first dup is player - set him visible
Add player only stats
Duplicate base person again whenever there's a need to create a new NPC. Clear if not touched for a while.

Base Person
- StatValue array of structs (Mood: 69, Energy: 88, PlayerOpinion: 59, etc)
- PlaceBuilding array of structs (Home: 7999, Office: 6899, etc)
- RelationshipPersons array of structs ("Friends": Jack, John, Maria references)

LPCharacter: A character specification - look, requirement, relationship - find or generates based on condition
- Max Characters Per Building (Landlord: 1, Colleagues: no max)
- Once generated, they have AI
- Age,and morph targets: base, variance up, variance down
- Gender: % Male
- % shemale if female

LPScene:
- Where:
- Doing What: optional
- First identify actor involved: name LPCharacter (GenerateNewEvenIfExist: 50%)
