feat(vida): 20 atividades e necessidades no estilo The Sims
Quatorze cenas novas para o bonequinho: cochilar na caminha (cobertor respirando e Zzz), café (vapor e gole), cozinhar (vira a panqueca no fogão), regar a plantinha (cresce e dá flor), violão, dançar (globo espelhado), pular corda, meditar flutuando, telescópio (céu estrelado e estrela cadente), pipa com rabiola, bolhas de sabão, skate (com ollie), computador (código aparecendo) e pescar (o peixe pula preso na linha). Necessidades puxam comportamento, como no The Sims: - energia < 40%: às vezes cochila; < 20%: dorme de verdade com sono respeitado (som comum, movimento e PIR não acordam) até 95%; acordar de propósito (toque, painel) encerra o sono pesado; - alegria abaixo de 60%: o rosto vai ficando emburrado (zanga 0 a 1: testa franzida, boca para baixo, olhos bravos); < 30%: mal-humorado; - diversão < 45%: faz uma atividade de 2 a 5 min escolhida pelo pique (cansado prefere calmas, café dá energia); pode ser interrompido; - durante a atividade a diversão sobe e a energia cai conforme o tipo. Com o modo vida ligado o celular não adormece mais por 20 s de silêncio: quem decide o sono é a energia. A cor escolhida nunca muda com a zanga. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -41,6 +41,20 @@ export const ATIVIDADES_INFO: Record<string, { nome: string; emoji: string }> =
|
||||
videogame: { nome: 'Videogame', emoji: '🎮' },
|
||||
pintar: { nome: 'Pintar', emoji: '🎨' },
|
||||
malhar: { nome: 'Malhar', emoji: '🏋️' },
|
||||
dormir: { nome: 'Cochilar', emoji: '🛏️' },
|
||||
cafe: { nome: 'Café', emoji: '☕' },
|
||||
cozinhar: { nome: 'Cozinhar', emoji: '🍳' },
|
||||
regar: { nome: 'Regar planta', emoji: '🪴' },
|
||||
violao: { nome: 'Violão', emoji: '🎸' },
|
||||
dancar: { nome: 'Dançar', emoji: '💃' },
|
||||
corda: { nome: 'Pular corda', emoji: '🪢' },
|
||||
meditar: { nome: 'Meditar', emoji: '🧘' },
|
||||
telescopio: { nome: 'Telescópio', emoji: '🔭' },
|
||||
pipa: { nome: 'Pipa', emoji: '🪁' },
|
||||
bolhas: { nome: 'Bolhas', emoji: '🫧' },
|
||||
skate: { nome: 'Skate', emoji: '🛹' },
|
||||
computador: { nome: 'Computador', emoji: '💻' },
|
||||
pescar: { nome: 'Pescar', emoji: '🎣' },
|
||||
};
|
||||
export const atividade = (nome: string) => tentar(() => postar('/comando', { tipo: 'atividade', valor: nome }));
|
||||
|
||||
|
||||
@@ -57,7 +57,9 @@
|
||||
<span class="humor" aria-hidden="true">{v.config.ligado ? v.emoji : '🤖'}</span>
|
||||
<div class="quem">
|
||||
<strong>{v.config.ligado ? v.nome_humor : 'Modo autônomo desligado'}{#if v.config.ligado}<Ajuda topico="humores" />{/if}</strong>
|
||||
<span>{idade(v.idade_dias)}{v.config.ligado && v.diario[0] ? ' · ' + v.diario[0].texto : ''}</span>
|
||||
<span>
|
||||
{idade(v.idade_dias)}{v.config.ligado && v.sono_profundo ? ' · sono pesado: só acorda descansado' : v.config.ligado && v.diario[0] ? ' · ' + v.diario[0].texto : ''}
|
||||
</span>
|
||||
</div>
|
||||
<Interruptor rotulo="Modo autônomo" checked={v.config.ligado} onchange={(l) => configurarVida({ ligado: l })} />
|
||||
</div>
|
||||
|
||||
+12
-13
@@ -42,12 +42,13 @@ export const TOPICOS: Record<string, TopicoGuia> = {
|
||||
emoji: '🐣',
|
||||
onde: 'Ao vivo › Vida',
|
||||
resumo:
|
||||
'Com o modo vida ligado, o Carinha funciona como um bichinho virtual: tem necessidades que mudam com o tempo e com o que acontece em volta, e decide sozinho o que fazer pelo humor.',
|
||||
'Com o modo vida ligado, o Carinha funciona como um Sim: tem necessidades que caem com o tempo, e cada necessidade baixa puxa um comportamento. Ele decide sozinho, mas você sempre pode interromper.',
|
||||
itens: [
|
||||
{ emoji: '⚡', nome: 'Energia', texto: 'Cai enquanto ele está acordado e enche dormindo. Muito baixa, ele vai tirar um cochilo.' },
|
||||
{ emoji: '😊', nome: 'Alegria', texto: 'Acompanha devagar a companhia e a diversão.' },
|
||||
{ emoji: '⚡', nome: 'Energia', texto: 'Cai acordado e mais rápido nas atividades agitadas; o café dá um pique. Abaixo de 40%, às vezes tira um cochilo na caminha. Abaixo de 20%, dorme de verdade e o sono é respeitado: som, movimento e PIR não acordam até ele chegar a 95%.' },
|
||||
{ emoji: '😊', nome: 'Alegria', texto: 'Acompanha a companhia e a diversão. Abaixo de 60%, o rosto vai ficando emburrado aos poucos (testa franzida, boca para baixo e, no fim, olhos bravos). Abaixo de 30%, fica mal-humorado.' },
|
||||
{ emoji: '💬', nome: 'Companhia', texto: 'Sobe quando alguém aparece (PIR), conversa com ele ou faz carinho. Baixa, ele fica carente.' },
|
||||
{ emoji: '🎈', nome: 'Diversão', texto: 'Sobe com movimento em volta, brincadeiras e quando ele inventa algo. Baixa, ele fica entediado.' },
|
||||
{ emoji: '🎈', nome: 'Diversão', texto: 'Abaixo de 45%, ele vai fazer uma atividade por 2 a 5 minutos (cansado escolhe coisas calmas; cheio de pique, coisas agitadas). Enquanto faz, a diversão sobe.' },
|
||||
{ emoji: '🛌', nome: 'Sono do celular', texto: 'Com o modo vida ligado, quem decide dormir é a energia; o celular não adormece mais só porque ficou 20 s em silêncio.' },
|
||||
{ emoji: '🎨', nome: 'Inventar figurinhas sozinho', texto: 'De vez em quando ele tem uma ideia e desenha uma figurinha nova com o Gemini, que vai para a biblioteca de Reações. No máximo 3 por dia, com 90 min entre elas.' },
|
||||
{ emoji: '🌙', nome: 'Dormir à noite', texto: 'Na madrugada ele vai dormir mesmo com gente se mexendo por perto. Carinho ou conversa seguram ele acordado por 10 minutos.' },
|
||||
{ emoji: '📖', nome: 'Diário', texto: 'Lista do que ele fez sozinho e dos cuidados que recebeu.' },
|
||||
@@ -77,7 +78,7 @@ export const TOPICOS: Record<string, TopicoGuia> = {
|
||||
{ emoji: '🙂', nome: 'Tranquilo', texto: 'Normal. Olha em volta, pisca devagar, meio sorriso.' },
|
||||
{ emoji: '😐', nome: 'Entediado', texto: 'Diversão baixa. Fica pensativo, boca de lado, procura o que fazer e às vezes toca uma reação da biblioteca.' },
|
||||
{ emoji: '🥺', nome: 'Carente', texto: 'Companhia baixa. Com alguém perto, acena e pede carinho; sozinho, fica cabisbaixo.' },
|
||||
{ emoji: '😢', nome: 'Triste', texto: 'Alegria baixa. Fica tristinho, olha para baixo e mexe menos.' },
|
||||
{ emoji: '😠', nome: 'Mal-humorado', texto: 'Alegria abaixo de 30%. Testa franzida, olhos bravos, resmunga. Carinho, conversa e brincadeira resolvem.' },
|
||||
{ emoji: '🥱', nome: 'Cansado', texto: 'Energia baixa. Boceja, suspira e logo vai dormir.' },
|
||||
{ emoji: '😴', nome: 'Dormindo', texto: 'Olhos fechados, respira devagar e recupera energia.' },
|
||||
],
|
||||
@@ -168,15 +169,13 @@ export const TOPICOS: Record<string, TopicoGuia> = {
|
||||
emoji: '🎮',
|
||||
onde: 'Ao vivo › Gestos › Atividades',
|
||||
resumo:
|
||||
'De vez em quando ele faz alguma coisa: os olhos sobem e encolhem, e embaixo aparece um bonequinho dele, na cor dos olhos, fazendo a atividade. Os olhos grandes acompanham (seguem a bola, leem as linhas, olham a TV).',
|
||||
'São 20 atividades. A tela se divide: o rosto vai para a esquerda e à direita aparece um bonequinho dele, na cor dos olhos, fazendo a atividade. Os olhos grandes acompanham (seguem a bola, leem as linhas, olham a TV, a pipa, o peixe).',
|
||||
itens: [
|
||||
{ emoji: '📖', nome: 'Ler', texto: 'Sentado com um livro; vira a página de vez em quando e os olhos leem linha a linha.' },
|
||||
{ emoji: '🎤', nome: 'Cantar', texto: 'Com microfone, balançando, notas subindo e boca cantando.' },
|
||||
{ emoji: '⚽', nome: 'Jogar bola', texto: 'Faz embaixadinha; os olhos seguem a bola.' },
|
||||
{ emoji: '🎮', nome: 'Videogame', texto: 'Sentado com o controle na frente de uma TV com um joguinho; comemora quando ganha.' },
|
||||
{ emoji: '🎨', nome: 'Pintar', texto: 'No cavalete; o quadro vai ganhando pinceladas coloridas.' },
|
||||
{ emoji: '🏋️', nome: 'Malhar', texto: 'Levanta halteres e sua.' },
|
||||
{ emoji: '🐣', nome: 'No modo vida', texto: 'Ele escolhe sozinho pelo humor: feliz canta e joga bola; tranquilo lê e pinta; entediado joga videogame. Nunca de madrugada.' },
|
||||
{ emoji: '⚽', nome: 'Agitadas (gastam energia)', texto: 'Jogar bola, malhar, pular corda, skate, dançar (com globo espelhado) e soltar pipa.' },
|
||||
{ emoji: '📖', nome: 'Calmas', texto: 'Ler, tomar café (dá energia), meditar flutuando, olhar estrelas no telescópio, pescar, computador e regar a plantinha (que cresce e dá flor).' },
|
||||
{ emoji: '🎨', nome: 'Criativas', texto: 'Pintar, tocar violão, cantar, cozinhar (vira a panqueca), bolhas de sabão e videogame.' },
|
||||
{ emoji: '🛏️', nome: 'Cochilar', texto: 'Deita na caminha com cobertor e Zzz; recupera energia como dormir.' },
|
||||
{ emoji: '🐣', nome: 'No modo vida', texto: 'Com a diversão baixa, ele escolhe uma pelo pique e fica nela de 2 a 5 minutos; cansado, cochila. Nunca de madrugada.' },
|
||||
{ emoji: '👆', nome: 'Parar', texto: 'Botão Parar no painel ou um toque na tela do celular. Dormir também encerra a atividade.' },
|
||||
],
|
||||
},
|
||||
|
||||
@@ -97,6 +97,10 @@ export interface Vida {
|
||||
idade_dias: number;
|
||||
emojis_hoje: number;
|
||||
ultimo_emoji: number | null;
|
||||
/** 0 a 1: o quanto está emburrado (alegria baixa). */
|
||||
zanga?: number;
|
||||
/** Dormindo de cansaço: som, movimento e PIR não acordam. */
|
||||
sono_profundo?: boolean;
|
||||
/** '' quando pode inventar figurinha agora; senão, o motivo. */
|
||||
pode_criar: string;
|
||||
diario: { horario: number; tipo: 'acao' | 'sono' | 'emoji' | 'cuidado' | 'vida' | 'atividade'; texto: string }[];
|
||||
|
||||
Reference in New Issue
Block a user