mirror of
https://github.com/nacabaro/nacapet.git
synced 2026-09-30 23:21:37 +00:00
Cositas:
- Habia un problema a la hora de los temporizadores del hambre y la fuerza - Se me ha vuelto a romper la pantalla, asi que meti un mini hack para que funcione una pantalla de menor resolucion - Añadida la mecanica del overfeed (la tengo que probar, no se siva) - Añadida la mecanica de interrupción de suelo (esta, si que debería de funcionar, pero hasta que no consiga funcionar el cambio de bicho aqui no se prueba na) COMO CAMARÓN
This commit is contained in:
@@ -53,7 +53,7 @@ void menu_drawClockEdit(TFT_eSprite &composite, TFT_eSprite &bg) {
|
||||
// Es un dia random, nada significativo, ya pondre mas adelante que tenga dia del año
|
||||
rtc.setTime(0, clockMinuteCount, clockHourCount, 1, 11, 2024);
|
||||
getLocalTime(&timeInfo, 50);
|
||||
dayUnixTime = mktime(&timeInfo) % 86400;
|
||||
dayUnixTime = mktime(&timeInfo) % SECONDS_IN_DAY;
|
||||
|
||||
coldBoot = false;
|
||||
|
||||
|
||||
@@ -49,6 +49,8 @@ void menu_reloadEggs(uint8_t selectedEgg) {
|
||||
|
||||
lines_freeEggList();
|
||||
|
||||
printf("[DEBUG] fileName=%s\n", fileName);
|
||||
|
||||
lines_getSingleLine(fileName);
|
||||
lines_getLineCareMistakes(fileName);
|
||||
|
||||
|
||||
+23
-22
@@ -11,6 +11,29 @@ void menu_feedingScreen(
|
||||
static int currentAnimationFrame = 0;
|
||||
|
||||
uint64_t currentTime = esp_timer_get_time();
|
||||
|
||||
if (currentTime - lastUpdateTime > ANIMATION_THRESHOLD_TIME_US) {
|
||||
draw_drawBackground(composite, bg, 90, 90, 3);
|
||||
|
||||
tft_clearBuffer(charaSprite, TFT_TRANSPARENT);
|
||||
animate_performEatingAnimation(composite, charaSprite, charaSpriteData);
|
||||
|
||||
tft_clearBuffer(charaSprite, TFT_TRANSPARENT);
|
||||
draw_drawSprite(composite, charaSprite, 24, 120, uiSpriteData, item, 6);
|
||||
|
||||
lastUpdateTime = currentTime;
|
||||
currentAnimationFrame++;
|
||||
}
|
||||
|
||||
if (currentAnimationFrame > 6) {
|
||||
screenKey = FOOD_SCREEN;
|
||||
lastPressedButtonTime = currentTime;
|
||||
currentAnimationFrame = 0;
|
||||
submenuKey = -1;
|
||||
}
|
||||
|
||||
tft_drawBuffer(composite);
|
||||
|
||||
uint8_t pressedButtons = buttons_getPressedButtons();
|
||||
switch (pressedButtons) {
|
||||
case 8:
|
||||
@@ -24,26 +47,4 @@ void menu_feedingScreen(
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (currentTime - lastUpdateTime > ANIMATION_THRESHOLD_TIME_US) {
|
||||
draw_drawBackground(composite, bg, 90, 90, 3);
|
||||
|
||||
tft_clearBuffer(charaSprite, TFT_TRANSPARENT);
|
||||
animate_performEatingAnimation(composite, charaSprite, charaSpriteData);
|
||||
|
||||
tft_clearBuffer(charaSprite, TFT_TRANSPARENT);
|
||||
draw_drawSprite(composite, charaSprite, 24, 120, uiSpriteData, item, 6);
|
||||
|
||||
lastUpdateTime = currentTime;
|
||||
currentAnimationFrame++;
|
||||
}
|
||||
|
||||
if (currentAnimationFrame > 6) {
|
||||
screenKey = FOOD_SCREEN;
|
||||
lastPressedButtonTime = currentTime;
|
||||
currentAnimationFrame = 0;
|
||||
submenuKey = -1;
|
||||
}
|
||||
|
||||
tft_drawBuffer(composite);
|
||||
}
|
||||
@@ -32,12 +32,14 @@ void menu_foodScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &mainC
|
||||
}
|
||||
|
||||
if (pressedButtons == 4) {
|
||||
lastUpdateTime = 0;
|
||||
switch(arrowPosition) {
|
||||
case 0:
|
||||
if (charaData.hunger < 8) {
|
||||
charaData.hungerCareMistakeTimer = charaData.initialStatsReductionTime;
|
||||
charaData.hungerCareMistakeObtained = false;
|
||||
charaData.weight++;
|
||||
charaData.hunger++;
|
||||
charaData.hungerCareMistakeTimer = charaData.initialStatsReductionTime;
|
||||
screenKey = FEEDING_SCREEN;
|
||||
submenuKey = FOOD_ICON;
|
||||
} else {
|
||||
@@ -47,18 +49,20 @@ void menu_foodScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &mainC
|
||||
charaData.overfeedHappened = true;
|
||||
}
|
||||
}
|
||||
return;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
if (charaData.strength < 8) {
|
||||
charaData.strengthCareMistakeTimer = charaData.initialStatsReductionTime;
|
||||
charaData.strength++;
|
||||
charaData.weight += 2;
|
||||
charaData.strengthCareMistakeTimer = charaData.initialStatsReductionTime;
|
||||
screenKey = FEEDING_SCREEN;
|
||||
submenuKey = PILL_ICON;
|
||||
} else {
|
||||
screenKey = REFUSING_SCREEN;
|
||||
}
|
||||
return;
|
||||
break;
|
||||
|
||||
default:
|
||||
|
||||
@@ -45,4 +45,7 @@ void menu_eggHatchScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &s
|
||||
void menu_reloadEggs(uint8_t selectedEgg);
|
||||
void menu_drawDeathScreen(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSprite &sprite, struct SpriteData* uiBigSprite, struct SpriteData* uiSmallSprite);
|
||||
|
||||
void menu_sleepScreen_sleepAction();
|
||||
void menu_sleepScreen_recalculateSleep();
|
||||
|
||||
#endif
|
||||
@@ -17,11 +17,11 @@ void menu_drawCurrentMenuOption(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSp
|
||||
uint8_t pressedButtons = buttons_getPressedButtons();
|
||||
|
||||
switch (pressedButtons) {
|
||||
case 8:
|
||||
case K1_PRESSED:
|
||||
menuKey++;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
case K3_PRESSED:
|
||||
screenKey = IDLE_SCREEN;
|
||||
menuKey = STATUS_SCREEN_MENU;
|
||||
return;
|
||||
@@ -31,7 +31,8 @@ void menu_drawCurrentMenuOption(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSp
|
||||
break;
|
||||
}
|
||||
|
||||
if (pressedButtons == 4) {
|
||||
// Separaíto mas guapito
|
||||
if (pressedButtons == K2_PRESSED) {
|
||||
switch (menuKey) {
|
||||
case STATUS_SCREEN_MENU:
|
||||
screenKey = STATUS_SCREEN;
|
||||
@@ -42,10 +43,7 @@ void menu_drawCurrentMenuOption(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSp
|
||||
break;
|
||||
|
||||
case SLEEP_SCREEN_MENU:
|
||||
charaData.asleep = true;
|
||||
vpet_computeCallLight();
|
||||
menuKey = STATUS_SCREEN;
|
||||
screenKey = SLEEP_SCREEN;
|
||||
menu_sleepScreen_sleepAction();
|
||||
break;
|
||||
|
||||
case POOP_SCREEN_MENU:
|
||||
@@ -107,3 +105,35 @@ void menu_drawCurrentMenuOption(TFT_eSprite &composite, TFT_eSprite &bg, TFT_eSp
|
||||
|
||||
tft_drawBuffer(composite);
|
||||
}
|
||||
|
||||
void menu_sleepScreen_sleepAction() {
|
||||
if (charaData.asleep && charaData.sleepy) {
|
||||
menu_sleepScreen_recalculateSleep();
|
||||
|
||||
charaData.sleepy = false;
|
||||
charaData.asleep = false;
|
||||
|
||||
charaData.sleepDisturbances++;
|
||||
|
||||
menuKey = STATUS_SCREEN;
|
||||
screenKey = IDLE_SCREEN;
|
||||
|
||||
} else {
|
||||
charaData.asleep = true;
|
||||
|
||||
vpet_computeCallLight(); // Lo hago por cortesia, no me gusta
|
||||
|
||||
menuKey = STATUS_SCREEN;
|
||||
screenKey = SLEEP_SCREEN;
|
||||
}
|
||||
}
|
||||
|
||||
void menu_sleepScreen_recalculateSleep() {
|
||||
uint32_t newSleepTime = (dayUnixTime + 3600) % SECONDS_IN_DAY;
|
||||
uint32_t newWakeUpTime = charaData.wakeupTime + 3600;
|
||||
|
||||
charaData.sleepTime = newSleepTime;
|
||||
charaData.wakeupTime = newWakeUpTime;
|
||||
|
||||
charaData.dynamicSleepDists++;
|
||||
}
|
||||
Reference in New Issue
Block a user