diff --git a/assets-cg/converters.py b/assets-cg/converters.py index d4b6a7c..28f1bd3 100644 --- a/assets-cg/converters.py +++ b/assets-cg/converters.py @@ -73,7 +73,7 @@ def convert_map(input, output, params, target): #create a dictionnary {tile id:type} for i in data_tileset["tiles"]: id = i["id"]+1 - type = i["type"] + type = i["class"] value = tile_type.get(type) if type in tile_type else TILE_AIR tile_value[id] = value diff --git a/assets-cg/maps/1.tmx b/assets-cg/maps/1.tmx index 9dc4f77..d7ff484 100644 --- a/assets-cg/maps/1.tmx +++ b/assets-cg/maps/1.tmx @@ -1,5 +1,5 @@ - + @@ -45,21 +45,21 @@ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,320,321,322,0,0,0,0,0,0,0,0,0,0,0,0,29,0,0,0,0,0,0,0,0,0,0, 0,0,320,321,322,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,29,349,350,351,0,0,0,0,0,0,0,323,324,325,0,0,58,0,0,0,0,0,0,0,0,0,0, -0,0,349,350,351,0,0,0,0,0,0,0,0,22,23,0,0,0,0,0,0,0,0,58,378,379,380,0,0,0,0,0,0,0,352,353,354,0,0,0,323,324,325,0,0,0,0,0,0,0, +0,0,349,350,351,0,0,0,0,0,0,0,0,22,23,346,0,0,0,0,0,0,0,58,378,379,380,0,0,0,0,0,0,0,352,353,354,0,0,0,323,324,325,0,0,0,0,0,0,0, 0,0,378,379,380,0,0,0,0,0,0,0,0,51,52,0,0,0,0,0,0,0,0,0,0,0,294,294,0,0,0,0,0,0,381,382,383,0,0,0,352,353,354,0,0,0,0,0,0,0, -0,0,0,0,0,0,326,327,328,329,0,0,0,0,0,0,323,324,325,0,0,0,0,0,0,0,294,294,294,0,0,0,0,0,0,0,0,0,0,0,381,382,383,294,294,0,0,0,0,0, +0,0,0,0,346,0,326,327,328,329,0,0,0,0,0,0,323,324,325,0,0,0,0,0,0,0,294,294,294,0,0,0,0,0,0,0,0,0,0,0,381,382,383,294,294,0,0,0,0,0, 0,0,0,0,0,0,355,356,357,358,245,0,0,0,0,0,352,353,354,0,0,0,0,0,0,0,0,294,294,294,0,0,0,0,0,0,0,0,0,0,0,0,0,294,294,294,0,0,0,0, 0,0,0,0,0,0,384,385,386,387,274,28,24,25,0,0,381,382,383,0,0,0,0,0,0,0,0,0,0,294,294,0,12,13,0,0,0,0,0,0,0,0,294,294,294,294,294,0,0,0, 0,0,0,0,0,0,413,414,415,416,303,57,53,54,0,334,335,336,337,248,249,250,251,0,0,0,31,323,324,325,0,0,41,42,0,0,0,0,0,0,294,294,295,295,294,294,294,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,363,364,365,366,309,0,0,280,0,0,0,39,352,353,354,0,0,0,0,0,0,0,0,0,294,294,295,295,294,294,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,392,393,394,395,0,0,0,280,24,25,0,0,381,382,383,0,0,0,0,0,0,0,0,0,294,294,295,295,0,323,324,325,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,323,324,325,421,422,423,424,249,250,249,309,53,54,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,294,295,295,0,352,353,354,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,323,324,325,421,422,423,424,249,250,249,309,53,54,0,0,0,346,0,0,0,0,0,0,0,0,0,0,0,294,295,295,0,352,353,354,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,352,353,354,450,451,452,453,0,0,0,0,0,0,0,0,0,0,0,0,252,253,253,254,0,0,0,0,294,294,294,294,0,381,382,383,0,0,0, 0,0,0,0,0,0,37,0,0,0,0,0,381,382,383,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,281,282,282,283,0,0,0,0,294,294,0,294,294,0,0,0,0,0,0, 0,0,0,0,0,0,35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,310,311,311,312,0,0,0,294,295,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,29,0,326,327,328,329,0,0,0,0,0,0,339,340,340,341,0,0,0,294,295,0,0,330,331,332,333,0,0,0,0, 0,0,0,0,0,0,0,294,294,0,0,0,0,0,0,0,0,0,0,58,0,355,356,357,358,40,39,0,0,0,0,0,0,0,0,0,0,0,294,295,0,0,359,360,361,362,0,0,0,0, -0,0,0,0,0,0,294,294,294,0,0,0,0,0,0,0,0,0,0,0,0,384,385,386,387,0,0,0,0,0,0,0,0,0,0,0,294,294,294,0,0,0,388,389,390,391,0,0,0,0, +0,0,0,0,0,0,294,294,294,0,0,346,0,0,0,0,0,0,0,0,0,384,385,386,387,0,0,0,0,0,0,0,0,0,0,0,294,294,294,0,0,0,388,389,390,391,0,0,0,0, 0,0,0,0,0,0,294,294,294,294,0,0,0,0,0,0,0,0,0,0,0,413,414,415,416,0,0,294,0,0,0,0,0,0,0,0,0,294,295,295,0,0,413,268,415,416,0,0,0,0, 0,0,0,0,0,0,294,294,294,294,0,0,0,0,295,295,0,0,0,0,0,0,0,0,0,0,0,294,294,0,0,0,0,0,0,0,0,0,294,295,294,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,294,294,294,294,0,0,0,295,295,295,0,0,0,0,0,0,0,0,20,21,0,0,294,294,0,0,0,0,0,0,0,0,0,294,294,294,0,0,0,0,0,0,0,0, @@ -113,32 +113,60 @@ - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets-cg/maps/tileset.tsx b/assets-cg/maps/tileset.tsx index 821a990..b92ea0e 100644 --- a/assets-cg/maps/tileset.tsx +++ b/assets-cg/maps/tileset.tsx @@ -1,224 +1,225 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets-cg/tileset.png b/assets-cg/tileset.png index 1990f6f..4f65e31 100644 Binary files a/assets-cg/tileset.png and b/assets-cg/tileset.png differ diff --git a/include/player.h b/include/player.h index d797b71..89b0a58 100644 --- a/include/player.h +++ b/include/player.h @@ -66,4 +66,5 @@ bool check_eventzone(struct Player *player, int id); int get_nb_eventdialog(struct Player *player); bool check_eventdialog(struct Player *player, int id); void player_step_back(struct Player *player); -bool has_pp_left(struct Player *player); \ No newline at end of file +bool has_pp_left(struct Player *player); +void reset_hp(struct Player *player); \ No newline at end of file diff --git a/src/engine.c b/src/engine.c index b6018a6..3f0bbbe 100644 --- a/src/engine.c +++ b/src/engine.c @@ -42,8 +42,8 @@ void engine_draw_map(struct Game const *game) { const int y_offset = (game->camera.offset.y - DHEIGHT/2); const int tileset_size = game->map->tileset_size; - for (int y = 1 ; y <= DHEIGHT / TILE_SIZE-1; y++) { - for (int x = 1 ; x <= DWIDTH / TILE_SIZE; x++) { + for (int y = 0 ; y <= DHEIGHT / TILE_SIZE; y++) { + for (int x = 0 ; x <= DWIDTH / TILE_SIZE; x++) { for (int layer = 0 ; layer < game->map->nb_layers; layer++) { unsigned int tile_id = 0; //detect if the map is oob @@ -137,11 +137,11 @@ void engine_action(struct Game *game, int action) { add_move(game->player, get_move_id(3));*/ open_inventory(game, &game->player->inventory, "Consultation", true); } - if(action == ACTION_F2) { - //add_item_to_inventory(game, &game->player->inventory, get_item_id(1)); - // srand(game->player->pos.x * game->player->pos.y); - drawTypeEffects(getTypeFromId(rand_range(1,5))); - } + // if(action == ACTION_F2) { + // //add_item_to_inventory(game, &game->player->inventory, get_item_id(1)); + // // srand(game->player->pos.x * game->player->pos.y); + // drawTypeEffects(getTypeFromId(rand_range(1,5))); + // } if(action == ACTION_OPTN) { draw_stats(game->player->stats); draw_player_moves(game->player); diff --git a/src/event.c b/src/event.c index 286c9f7..29dad1d 100644 --- a/src/event.c +++ b/src/event.c @@ -29,12 +29,16 @@ bool handle_event(struct Game *game, char const *event) return true; } else if(!strncmp(event, "xp:", 3)) { - event += 3; - add_xp(game->player, atoi(event)); - return true; + event += 3; + add_xp(game->player, atoi(event)); + return true; + } + else if(!strcmp(event, "hp:all")) { + reset_hp(game->player); + return true; } else if(!strncmp(event, "hp:", 3)) { - event += 3; + event += 3; if(game->player->stats.pv != game->player->stats.max_pv) { game->player->stats.pv += atoi(event); if(game->player->stats.pv > game->player->stats.max_pv) game->player->stats.pv = game->player->stats.max_pv; @@ -47,22 +51,31 @@ bool handle_event(struct Game *game, char const *event) return true; } else if(!strncmp(event, "pp:", 3)) { - event += 3; - return add_pp(game->player, atoi(event)); + event += 3; + return add_pp(game->player, atoi(event)); } else if(!strncmp(event, "type:", 5)) { - event += 5; + event += 5; int len=strlen(event); char name[20]; strncpy(name,event,len); name[len] = '\0'; - change_type(game->player, getTypeFromName(name)); - return true; + change_type(game->player, getTypeFromName(name)); + return true; } else if(!strncmp(event, "move:", 5)) { - event += 5; - add_move(game->player, get_move_id(atoi(event))); - return true; + event += 5; + add_move(game->player, get_move_id(atoi(event))); + return true; + } + else if(!strncmp(event, "infotype:", 9)) { + event += 9; + int len=strlen(event); + char name[20]; + strncpy(name,event,len); + name[len] = '\0'; + drawTypeEffects(getTypeFromName(name)); + return true; } else if(!strcmp(event, "zone:begin")) { draw_dialog_text(game, "Bienvenue dans ce projet de RPG grandeur nature !;Voici une courte preview de ce qui est possible."); diff --git a/src/player.c b/src/player.c index 2e93c3c..35d1752 100644 --- a/src/player.c +++ b/src/player.c @@ -217,6 +217,13 @@ void reset_pp(struct Player *player) { wait_for_input(KEY_SHIFT); } +void reset_hp(struct Player *player) { + player->stats.pv = player->stats.max_pv; + draw_text(50, DHEIGHT-47, C_BLACK, "Vous regagnez l'ensemble de vos PVs"); + dupdate(); + wait_for_input(KEY_SHIFT); +} + void add_xp(struct Player *player, int xp) { player->stats.xp += xp; diff --git a/src/type.c b/src/type.c index 73b4364..f97d6f6 100644 --- a/src/type.c +++ b/src/type.c @@ -61,6 +61,7 @@ void drawTypeEffects(struct Type type) { if(i==2) dprint(70+100*i, 60+20*j, C_BLACK, "%s", getTypeFromId(type.null[j]).name); } } + drect(0, DHEIGHT-20, DWIDTH, DHEIGHT, type.color); dupdate(); - wait_for_input(KEY_SHIFT); + wait_for_input(KEY_EXIT); } \ No newline at end of file