24 lines
840 B
C
24 lines
840 B
C
#pragma once
|
|
#include <stdint.h>
|
|
#include "BuddyTypes.h"
|
|
|
|
struct TamaState {
|
|
uint8_t hunger; // 0=full → 100=starving
|
|
uint8_t happiness; // 100=happy → 0=bored
|
|
uint8_t hygiene; // 100=clean → 0=dirty
|
|
uint32_t nextHungerTick;
|
|
uint32_t nextHappyTick;
|
|
uint32_t nextHygieneTick;
|
|
};
|
|
|
|
void initTama(TamaState &t, uint32_t now);
|
|
|
|
// Updates ticks and returns the mood override for buddy.
|
|
// Returns MOOD_HUNGRY / MOOD_DIRTY / MOOD_PLAYFUL when a need is critical.
|
|
// Returns MOOD_NORMAL when needs are satisfied or guard blocks (revertAt != 0, sleepy, wink).
|
|
Mood updateTama(TamaState &t, const BuddyState &b, uint32_t now);
|
|
|
|
void tamaFeed(TamaState &t); // hunger -= 30 (floor 0)
|
|
void tamaPlay(TamaState &t); // happy += 25 (cap 100)
|
|
void tamaClean(TamaState &t); // hygiene += 40 (cap 100)
|