Skip to content

Commit

Permalink
add fight (not definitive version)
Browse files Browse the repository at this point in the history
  • Loading branch information
mathieu-brl committed Apr 22, 2023
1 parent b0e7416 commit f553530
Show file tree
Hide file tree
Showing 9 changed files with 89 additions and 40 deletions.
1 change: 1 addition & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ SRC = src/main.c \
src/event/menu_event.c \
\
src/fight/launch_fight.c \
src/fight/detect_fight.c \
src/fight/create_fight.c \
src/fight/fight.c \
src/fight/corrupt_map.c \
Expand Down
1 change: 1 addition & 0 deletions include/prototype.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@
fight_t *create_fight(void);
int destroy_fight(fight_t *fight);

int detect_fight(app_t *app);
int corrupt_map(app_t *app);
int trapped_tile(app_t *app);
int fight(app_t *app);
Expand Down
58 changes: 29 additions & 29 deletions maps/Maze/map_2.csv
Original file line number Diff line number Diff line change
@@ -1,31 +1,31 @@
20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20
20,67,20,-1,-1,-1,20,-1,-1,-1,20,-1,-1,-1,20,-1,20,-1,20,-1,-1,-1,20,-1,-1,-1,20,-1,20,-1,20
20,-1,20,-1,20,-1,20,-1,20,20,20,-1,20,-1,20,-1,20,-1,20,-1,20,20,20,-1,20,20,20,-1,20,-1,20
20,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,20,-1,-1,-1,20,-1,-1,-1,20,-1,20,-1,20
20,-1,20,-1,20,-1,20,-1,20,20,20,20,20,20,20,-1,20,20,20,20,20,-1,20,20,20,-1,20,-1,20,-1,20
20,-1,20,-1,20,-1,20,-1,-1,-1,-1,-1,-1,-1,20,-1,20,-1,20,-1,-1,-1,20,-1,20,-1,-1,-1,-1,-1,20
20,20,20,20,20,-1,20,20,20,20,20,20,20,-1,20,-1,20,-1,20,20,20,-1,20,-1,20,-1,20,20,20,-1,20
20,-1,-1,-1,20,-1,-1,-1,20,-1,-1,-1,-1,-1,20,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,-1,20,-1,20
20,-1,20,20,20,20,20,20,20,-1,20,-1,20,20,20,-1,20,-1,20,-1,20,20,20,-1,20,-1,20,-1,20,20,20
20,-1,-1,-1,-1,-1,20,-1,-1,-1,20,-1,-1,-1,20,-1,20,-1,20,-1,20,-1,20,-1,20,-1,-1,-1,20,-1,20
20,-1,20,20,20,20,20,20,20,20,20,20,20,-1,20,20,20,-1,20,-1,20,-1,20,20,20,20,20,-1,20,-1,20
20,-1,20,-1,-1,-1,20,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,20,-1,-1,-1,20,-1,20,-1,-1,-1,-1,-1,20
20,-1,20,-1,20,20,20,-1,20,-1,20,20,20,20,20,20,20,20,20,-1,20,20,20,-1,20,20,20,20,20,-1,20
20,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,20,-1,20,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,20,-1,20,-1,20
20,20,20,20,20,20,20,20,20,-1,20,20,20,-1,20,-1,20,-1,20,20,20,-1,20,20,20,-1,20,-1,20,-1,20
20,-1,20,-1,20,-1,20,-1,-1,-1,-1,-1,-1,-1,20,-1,20,-1,-1,-1,-1,-1,20,-1,20,-1,20,-1,-1,-1,20
20,-1,20,-1,20,-1,20,20,20,-1,20,-1,20,20,20,-1,20,20,20,20,20,20,20,-1,20,20,20,20,20,-1,20
20,-1,-1,-1,20,-1,-1,-1,-1,-1,20,-1,-1,-1,20,-1,-1,-1,-1,-1,20,-1,-1,-1,20,-1,-1,-1,-1,-1,20
20,-1,20,-1,20,-1,20,20,20,20,20,20,20,-1,20,20,20,20,20,-1,20,20,20,-1,20,20,20,-1,20,20,20
20,-1,20,-1,20,-1,-1,-1,-1,-1,20,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,-1,20,-1,-1,-1,20
20,20,20,-1,20,-1,20,20,20,20,20,-1,20,20,20,20,20,-1,20,-1,20,20,20,-1,20,-1,20,-1,20,20,20
20,-1,20,-1,-1,-1,-1,-1,20,-1,20,-1,-1,-1,-1,-1,-1,-1,20,-1,20,-1,20,-1,20,-1,20,-1,-1,-1,20
20,-1,20,-1,20,20,20,-1,20,-1,20,20,20,20,20,-1,20,-1,20,-1,20,-1,20,20,20,-1,20,-1,20,-1,20
20,-1,20,-1,20,-1,20,-1,-1,-1,-1,-1,-1,-1,20,-1,20,-1,20,-1,-1,-1,20,-1,-1,-1,20,-1,20,-1,20
20,-1,20,20,20,-1,20,20,20,-1,20,-1,20,-1,20,20,20,20,20,20,20,20,20,-1,20,20,20,20,20,-1,20
20,-1,-1,-1,-1,-1,20,-1,-1,-1,20,-1,20,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,20
20,20,20,20,20,-1,20,-1,20,-1,20,20,20,20,20,20,20,-1,20,-1,20,20,20,20,20,-1,20,-1,20,20,20
20,-1,-1,-1,20,-1,-1,-1,20,-1,20,-1,20,-1,20,-1,-1,-1,20,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,20
20,-1,20,-1,20,-1,20,20,20,-1,20,-1,20,-1,20,-1,20,-1,20,20,20,-1,20,20,20,-1,20,-1,20,20,20
20,-1,20,-1,-1,-1,20,-1,-1,-1,-1,-1,20,-1,-1,-1,20,-1,-1,-1,20,-1,20,-1,-1,-1,20,-1,-1,-1,20
20,67,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,-1,20,-1,-1,-1,20,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,20
20,-1,20,-1,20,20,20,20,20,20,20,-1,20,-1,20,-1,20,20,20,20,20,-1,20,20,20,20,20,-1,20,-1,20
20,-1,20,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,-1,20
20,-1,20,-1,20,20,20,20,20,20,20,-1,20,-1,20,-1,20,20,20,-1,20,20,20,20,20,20,20,20,20,-1,20
20,-1,-1,-1,20,-1,20,-1,-1,-1,-1,-1,20,-1,20,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,20
20,20,20,20,20,-1,20,20,20,20,20,20,20,20,20,20,20,20,20,-1,20,20,20,-1,20,20,20,20,20,-1,20
20,-1,-1,-1,-1,-1,-1,-1,20,-1,20,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,20,-1,20,-1,-1,-1,-1,-1,20
20,-1,20,-1,20,20,20,-1,20,-1,20,-1,20,20,20,-1,20,20,20,20,20,20,20,-1,20,-1,20,-1,20,20,20
20,-1,20,-1,20,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,20,-1,20,-1,20,-1,20
20,-1,20,-1,20,-1,20,-1,20,-1,20,-1,20,20,20,20,20,20,20,-1,20,-1,20,20,20,20,20,-1,20,-1,20
20,-1,20,-1,20,-1,20,-1,20,-1,20,-1,20,-1,-1,-1,-1,-1,-1,-1,20,-1,-1,-1,20,-1,-1,-1,20,-1,20
20,-1,20,20,20,-1,20,-1,20,20,20,20,20,20,20,-1,20,20,20,20,20,-1,20,-1,20,20,20,20,20,-1,20
20,-1,20,-1,20,-1,20,-1,20,-1,-1,-1,20,-1,20,-1,20,-1,-1,-1,20,-1,20,-1,20,-1,-1,-1,-1,-1,20
20,20,20,-1,20,-1,20,-1,20,-1,20,-1,20,-1,20,20,20,20,20,-1,20,20,20,-1,20,20,20,-1,20,20,20
20,-1,-1,-1,20,-1,20,-1,20,-1,20,-1,20,-1,20,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,20
20,-1,20,-1,20,20,20,-1,20,-1,20,20,20,-1,20,-1,20,20,20,-1,20,-1,20,-1,20,20,20,20,20,20,20
20,-1,20,-1,-1,-1,20,-1,-1,-1,-1,-1,20,-1,20,-1,-1,-1,20,-1,20,-1,20,-1,-1,-1,-1,-1,20,-1,20
20,-1,20,20,20,20,20,-1,20,20,20,20,20,-1,20,-1,20,20,20,-1,20,20,20,-1,20,20,20,20,20,-1,20
20,-1,20,-1,-1,-1,20,-1,20,-1,20,-1,-1,-1,-1,-1,-1,-1,20,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,20
20,-1,20,-1,20,-1,20,-1,20,-1,20,20,20,-1,20,20,20,-1,20,-1,20,-1,20,-1,20,20,20,20,20,20,20
20,-1,20,-1,20,-1,-1,-1,-1,-1,20,-1,-1,-1,-1,-1,20,-1,20,-1,-1,-1,20,-1,-1,-1,20,-1,20,-1,20
20,-1,20,20,20,20,20,-1,20,-1,20,-1,20,-1,20,-1,20,20,20,-1,20,20,20,20,20,20,20,-1,20,-1,20
20,-1,-1,-1,-1,-1,-1,-1,20,-1,20,-1,20,-1,20,-1,20,-1,20,-1,-1,-1,-1,-1,20,-1,-1,-1,20,-1,20
20,20,20,-1,20,-1,20,-1,20,20,20,20,20,-1,20,20,20,-1,20,20,20,-1,20,-1,20,20,20,-1,20,-1,20
20,-1,-1,-1,20,-1,20,-1,20,-1,-1,-1,-1,-1,20,-1,20,-1,20,-1,-1,-1,20,-1,20,-1,20,-1,20,-1,20
20,-1,20,-1,20,-1,20,20,20,-1,20,20,20,20,20,-1,20,-1,20,20,20,-1,20,-1,20,-1,20,-1,20,-1,20
20,-1,20,-1,20,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,20,-1,20,-1,-1,-1,-1,-1,-1,-1,20
20,-1,20,-1,20,-1,20,20,20,20,20,-1,20,-1,20,20,20,20,20,20,20,-1,20,-1,20,-1,20,20,20,20,20
20,-1,20,-1,20,-1,-1,-1,20,-1,-1,-1,20,-1,-1,-1,20,-1,-1,-1,-1,-1,20,-1,20,-1,-1,-1,-1,-1,20
20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,-1,66
8 changes: 4 additions & 4 deletions src/event/main_event.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@ static int manage_keys(app_t *app, sfKeyCode code)
app->fps->key_f = 1 - app->fps->key_f;
if (app->menu->state == game && code == sfKeyG)
app->fight->is_fighting = 1 - app->fight->is_fighting;
if (app->menu->state == game && code == sfKeyE) {
detect_dialogue(app);
detect_fight(app);
}
if (app->menu->state == game && code == sfKeyH &&
app->maps->selected_map != app->maps->map[0])
change_map(app, 1);
Expand All @@ -41,10 +45,6 @@ static int detect_event(app_t *app, sfEvent event)
if (app->menu->state == splash && (event.type == sfEvtKeyPressed
|| event.type == sfEvtMouseButtonReleased))
skip_splash_screen(app);
if (app->menu->state == game && event.type == sfEvtKeyPressed &&
event.key.code == sfKeyE) {
detect_dialogue(app);
}
menu_event(app, event);
detect_escape(app, event);
if (event.type == sfEvtKeyPressed)
Expand Down
45 changes: 45 additions & 0 deletions src/fight/detect_fight.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
/*
** EPITECH PROJECT, 2023
** B-MUL-200-LYN-2-1-myrpg-mathieu.borel
** File description:
** detect_dialogue.c
*/

#include "../../include/prototype.h"

static int detect_fight_tile(app_t *app, tile_t *tile, float hypo)
{
if (tile->state == ENEMY && hypo < 5)
launch_fight(app);
return 0;
}

static int detect_fight_layer(app_t *app, layer_t *layer)
{
sfVector2i position = {0, 0};
entity_t *player = app->player;
while (layer->layer[position.y] != NULL) {
position.x = 0;
while (layer->layer[position.y][position.x] != NULL) {
tile_t *tile = layer->layer[position.y][position.x];
float dx = pow(player->position.x - tile->position.x, 2);
float dy = pow(player->position.y - tile->position.y, 2);
float hypo = sqrt(dx + dy);
detect_fight_tile(app, tile, hypo);
position.x += 1;
}
position.y += 1;
}
return 0;
}

int detect_fight(app_t *app)
{
map_t *map = app->maps->selected_map;
int i = 0;
while (map->layer[i] != NULL) {
detect_fight_layer(app, map->layer[i]);
i += 1;
}
return 0;
}
5 changes: 2 additions & 3 deletions src/fight/fight.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@ int fight(app_t *app)
{
corrupt_map(app);
sfTime time = sfClock_getElapsedTime(app->fight->clock);
if (app->fight->is_fighting == 0)
return 0;
stop_fight(app);
if (app->fight->fight_tick == 0 && time.microseconds >= 1000000) {
app->fight->fight_tick = 1;
trapped_tile(app);
Expand All @@ -23,9 +22,9 @@ int fight(app_t *app)
app->fight->fight_tick = 0;
kill_player(app);
restore_tile(app);
app->fight->no_round -= 1;
sfClock_restart(app->fight->clock);
return 0;
}
stop_fight(app);
return 0;
}
5 changes: 3 additions & 2 deletions src/fight/kill_player.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,11 @@ int kill_player(app_t *app)
{
int x = app->player->position.x;
int y = app->player->position.y;
app->fight->no_round = 10;
map_t *map = app->maps->selected_map;
tile_t *ptile = map->layer[app->player->layer - 1]->layer[y + 1][x + 1];
if (ptile->is_trapped == 1)
if (ptile->is_trapped == 1) {
app->fight->no_round = 10;
change_map(app, 3);
}
return 0;
}
3 changes: 2 additions & 1 deletion src/fight/launch_fight.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,10 @@

int stop_fight(app_t *app)
{
printf("%d\n", app->fight->no_round);
if (app->fight->no_round == 0) {
change_map_by_map(app, app->maps->old_map);
app->fight->is_fighting = 1;
app->fight->is_fighting = 0;
}
return 0;
}
Expand Down
3 changes: 2 additions & 1 deletion src/gloop.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ int gloop(app_t *app)
display_map(app->window, app->maps->selected_map, app->player);
if (app->fps->key_f == 1 && app->menu->state == game)
show_fps(app);
fight(app);
if (app->fight->is_fighting == 1)
fight(app);
center_view(app->view, app->player);
return 0;
}

0 comments on commit f553530

Please sign in to comment.