Adding a chest for the smith

This commit is contained in:
Anonymus Raccoon
2020-05-02 14:49:34 +02:00
parent b463dd0e62
commit 185dedc0ed
6 changed files with 51 additions and 2 deletions
+1 -1
View File
@@ -298,7 +298,7 @@ add_executable(my_rpg
include/components/attack_component.h
src/systems/combat_methods.c
src/combat/attacks.c
src/player_utilities.c include/player_utilities.h src/systems/inventory.c include/systems/inventory.h src/systems/game_over.c include/systems/game_over.h src/npc/mia.c lib/gamacon/src/scene/scene_constructor.c src/npc/fisherman.c src/npc/lumberjack.c)
src/player_utilities.c include/player_utilities.h src/systems/inventory.c include/systems/inventory.h src/systems/game_over.c include/systems/game_over.h src/npc/mia.c lib/gamacon/src/scene/scene_constructor.c src/npc/fisherman.c src/npc/lumberjack.c src/npc/smith.c)
add_compile_options(-W -Wall -Wextra -Wshadow)
+2 -1
View File
@@ -44,7 +44,8 @@ SRC = src/main.c \
src/systems/game_over.c \
src/npc/mia.c \
src/npc/fisherman.c \
src/npc/lumberjack.c
src/npc/lumberjack.c \
src/npc/smith.c
OBJ = $(SRC:%.c=%.o)
+3
View File
@@ -79,5 +79,8 @@ gc_vector2 pos, enum gc_mousekeys key);
bool lumberjack_yes(gc_engine *engine, gc_entity *entity, \
gc_vector2 pos, enum gc_mousekeys key);
bool smith_chest(gc_engine *engine, gc_entity *entity, \
gc_vector2 pos, enum gc_mousekeys key);
void load_data(gc_scene *scene, const gc_data *datas);
extern const struct gc_data game_data[];
+13
View File
@@ -119,6 +119,7 @@
<sprite name="item_rock_0" src="assets/sprites/items/generic-rpg-rock03.png" />
<sprite name="item_rock_1" src="assets/sprites/items/generic-rpg-rock04.png" />
<sprite name="item_rock_2" src="assets/sprites/items/generic-rpg-rock05.png" />
<sprite name="chest" src="assets/sprites/items/generic-rpg-treasure-closed.png" />
<sprite name="empty_slot" src="assets/sprites/inventory/empty_48x48.png" />
@@ -317,6 +318,18 @@
</dialog_holder>
</gc_entity>
<gc_entity>
<transform_component>
<Position x="0" y="0" />
<Size x="50" y="50" />
</transform_component>
<renderer src="chest" />
<map_linker x="63" y="40" centered="true" />
<dialog_holder x="62" y="40" tile_texture="npc_interact">
<Chest line="You found a chest." callback="smith_chest" />
</dialog_holder>
</gc_entity>
<gc_entity>
<transform_component>
<Position x="0" y="0" />
+1
View File
@@ -61,6 +61,7 @@ const struct gc_data game_data[] = {
{"input", "fisherman_next", &fisherman_next, NULL},
{"dialog_callback", "fisherman_setup", &fisherman_setup, NULL},
{"input", "lumberjack_yes", &lumberjack_yes, NULL},
{"dialog_callback", "smith_chest", &smith_chest, NULL},
{NULL, NULL, NULL, NULL}
};
+31
View File
@@ -0,0 +1,31 @@
/*
** EPITECH PROJECT, 2020
** my_rpg
** File description:
** smith.c
*/
#include <components/player_component.h>
#include <components/dialog_holder.h>
#include "engine.h"
bool smith_chest(gc_engine *engine, gc_entity *entity, \
gc_vector2 pos, enum gc_mousekeys key)
{
struct dialog_holder *dialog = dialog_get_current(engine);
gc_entity *player = engine->scene->get_entity(engine->scene, 50);
struct player_component *inv;
if (!player)
return (false);
inv = GETCMP(player, player_component);
if (!inv)
return (false);
dialog->text[1] = NULL;
if (inv->inventory_upgrades[3])
dialog_add_line(dialog, NULL, "This chest is empty.", NULL);
else
dialog_add_line(dialog, NULL, "You found the shield upgrade!", NULL);
inv->inventory_upgrades[3] = true;
return (true);
}