diff --git a/data/player.png b/data/player.png index 4c6edaf..d2ced95 100644 Binary files a/data/player.png and b/data/player.png differ diff --git a/source/Globals.c b/source/Globals.c index 774d06d..e114f67 100644 --- a/source/Globals.c +++ b/source/Globals.c @@ -141,6 +141,7 @@ void hurtEntity(Entity *e, int damage, int dir, u32 hurtColor, Entity *damager){ playSoundPositioned(snd_bossdeath, e->level, e->x, e->y); e->p.endTimer = 60; e->p.isDead = true; + e->hurtTime = 10; return; } break; diff --git a/source/IngameMenu.c b/source/IngameMenu.c index 6003e54..d8159f6 100644 --- a/source/IngameMenu.c +++ b/source/IngameMenu.c @@ -96,15 +96,19 @@ void ingameMenuTick(PlayerData *pd, int menu) { case MENU_WIN: if (pd->inputs.k_accept.clicked){ pd->ingameMenu = MENU_NONE; + pd->entity.p.hasWon = false; } break; case MENU_LOSE: if (pd->inputs.k_accept.clicked){ pd->ingameMenu = MENU_NONE; + pd->entity.p.isDead = false; + pd->entity.p.health = 10; pd->entity.level = 1; playerSpawn(pd); //TODO: This canceled to main menu, but what should I do in multiplayer? } + pd->entity.hurtTime = 10; break; case MENU_CONTAINER: @@ -186,6 +190,7 @@ void ingameMenuTick(PlayerData *pd, int menu) { wrap = wrap - 1; pd->entity.p.health = 10; + pd->entity.hurtTime = 10; //head if(pd->ingameMenuSelection==0) { diff --git a/source/Player.c b/source/Player.c index 5085699..7cffb80 100644 --- a/source/Player.c +++ b/source/Player.c @@ -352,6 +352,8 @@ bool playerUse(PlayerData *pd) { } void tickPlayer(PlayerData *pd, bool inmenu) { + if (pd->entity.p.isDead) return; + //invincibility time if (pd->entity.hurtTime > 0) pd->entity.hurtTime--; diff --git a/source/Player.h b/source/Player.h index db05f1d..45e3563 100644 --- a/source/Player.h +++ b/source/Player.h @@ -12,7 +12,7 @@ #define PLAYER_SPRITE_EYES_COUNT 5 #define PLAYER_SPRITE_BODY_COUNT 6 #define PLAYER_SPRITE_ARMS_COUNT 6 -#define PLAYER_SPRITE_LEGS_COUNT 4 +#define PLAYER_SPRITE_LEGS_COUNT 5 typedef struct _plrsp {