mirror of
https://github.com/zoriya/ForecastingVillage.git
synced 2026-06-04 19:16:21 +00:00
Adding a chest for the smith
This commit is contained in:
+1
-1
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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[];
|
||||
@@ -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" />
|
||||
|
||||
@@ -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}
|
||||
};
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user