From 88ed4a8b50fe25aea169139bd6890725e92950a3 Mon Sep 17 00:00:00 2001
From: Anonymus Raccoon
Date: Sat, 2 May 2020 15:39:20 +0200
Subject: [PATCH] Adding a mage that give you the fireball upgrade
---
CMakeLists.txt | 2 +-
Makefile | 3 ++-
assets/sprites/npc/mage.png | Bin 0 -> 1633 bytes
include/setup.h | 2 ++
prefabs/game.gcprefab | 19 +++++++++++++++++++
src/game_loader.c | 1 +
src/npc/mage.c | 27 +++++++++++++++++++++++++++
7 files changed, 52 insertions(+), 2 deletions(-)
create mode 100644 assets/sprites/npc/mage.png
create mode 100644 src/npc/mage.c
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 955f4ab..c77b92e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -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/npc/smith.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 src/npc/mage.c)
add_compile_options(-W -Wall -Wextra -Wshadow)
diff --git a/Makefile b/Makefile
index 13f6036..63174cd 100644
--- a/Makefile
+++ b/Makefile
@@ -45,7 +45,8 @@ SRC = src/main.c \
src/npc/mia.c \
src/npc/fisherman.c \
src/npc/lumberjack.c \
- src/npc/smith.c
+ src/npc/smith.c \
+ src/npc/mage.c
OBJ = $(SRC:%.c=%.o)
diff --git a/assets/sprites/npc/mage.png b/assets/sprites/npc/mage.png
new file mode 100644
index 0000000000000000000000000000000000000000..3befece96890efb27a4d38cfaeda4cbb3d23b1d4
GIT binary patch
literal 1633
zcmV-n2A=teP)G~~
z=Q#j8JP%oB9(IrbAS)FRIxQz%MLvvORk{TQ1t=&eERwpISwZB6cJj4`*VoqoH6Z`m
zu=@J?D{d@dJOFo1JvbyuSUE#QHH9!0Fmh!8004ECVK_A_HCDID04$tpSUg_<001X+
zQchC<|NsC0|NsC0|NsC0|NsC0|NsC0|NsC0|NsC0|NsC0|NsC0|NmKpC{h3b1yV^w
zK~#90?O9=Sn>rALA`&nXwu4CA3Mq>1*Z=<$-<`k-mhN0R&CL7oqM3&2-tHb?Y^~2l
z@xNYW`89&_N5vGF28;mUij;5-7=b7@-kMj-041h}k|0@HvIh_ZYD6#s}EJ}ZE}
z|jDy%-nxdyaABB1&{9OR$*tU#)5
z4=@z^?KRFeco+1k(Uvgk$p#mr?R`cmzA{p|M(T#qmN0tn9OG){Cr15ejpCR2B2bFD
zsVXtTS3bR`??%BV?o2%vvlC@>c`l@k@Wm*4gu_EkJV&UI@#!p`XPhj}coE@Y?TUiL
zW%BMXb_~9U6=Ms&{2^;3{=Gi8!rlePvP$#FU4pXu0Wqjfwq~{gCkT5p=7mf?E5QBq
z5#c6}&kF>?LOiv3d`=+h2aG_Qb~9u)pan}%Xu7T)a`>!3AgY`3`Q?z=fDynIY&OF<
z{`{2~(R@x&VC-o02+L&h89^v?T5AGk_?!R=oiP;5@i_s03hLwncs?hPN={bR`3#92%cvfKVYS06n5Wrq*^_U6}2dCs_OJzoFi4GtzTGwv`?k%*4
zoxn(Idn5(U7-z{dvgvaqdkJ)BJt3H2(MB$LjsiTvU8RiNbfS&GDJ~%W#2Hz}$ioA3
zB8(>IX(Ny4N*Y=6j3$4dk@6sj?;gNlw4<_xRB7KLywkidh*R31&&6(+#3NKd>73$$
zOq6aUof|3WJ0N}a!f(@GAh>+L&u+j71O_3DLP>#XzzA@dQlf?^kPSG2fd7ksaDGuG
z(;B(~EtsbkPkNqTAZ4kf-81r$_!(fy@y4T7by)wf`
z@`UIDrx+T5bY+Ao3k4PgtI>in3ijFGZ}o3ym0D#O+^~-p8$?+Px&^_}`e<5%8@9vE
zKgPX1h6cm1HiAP6Rmtj3yi7KExwPktUkT*pQD%BWr0Ri}@%SE20tRns|O>
z!!r~cL7EP)&&ei(D7*wL${5EBhJTSj&PGv#IR(LM?|m{P!pp_WNajbFvp|!~j{x^X
zKtf!~q(cz`lBe+R`O$yA#4_7~^>+dc3-vtW$!ov~!tmlD{bh&ca{~NrXPNKh@mWC|
ze%pCWq8Z0$1uaGwX#NoWBFFK0!Ps@pk{5IMtYA32JdcgWipb%!f&rq-I1ZaAPqBPf
zU~sgfn>J1h9G?{w@HJj{1kCX{0d8)lqhOBD35r2eb9A213TkO58Gkb0;0HnSQvfUo
z1d}6hu8iD6U{AgKR-O+P926WdwN{6HNMmVTpPx?Dsn`id&!0=Y2s>kg!C(JCTf~
f*#1*PqL0$QD8Rci+mCge00000NkvXXu0mjfPi5u9
literal 0
HcmV?d00001
diff --git a/include/setup.h b/include/setup.h
index c2955e5..323cba9 100644
--- a/include/setup.h
+++ b/include/setup.h
@@ -84,5 +84,7 @@ gc_vector2 pos, enum gc_mousekeys key);
bool smith_chest(gc_engine *engine, gc_entity *entity, \
gc_vector2 pos, enum gc_mousekeys key);
+void mage_give(gc_engine *engine);
+
void load_data(gc_scene *scene, const gc_data *datas);
extern const struct gc_data game_data[];
\ No newline at end of file
diff --git a/prefabs/game.gcprefab b/prefabs/game.gcprefab
index 5e9110d..692f7e7 100644
--- a/prefabs/game.gcprefab
+++ b/prefabs/game.gcprefab
@@ -153,6 +153,7 @@
+
@@ -361,6 +362,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/game_loader.c b/src/game_loader.c
index 13217b6..14b7bcb 100644
--- a/src/game_loader.c
+++ b/src/game_loader.c
@@ -63,6 +63,7 @@ const struct gc_data game_data[] = {
{"dialog_callback", "fisherman_chest", &fisherman_chest, NULL},
{"input", "lumberjack_yes", &lumberjack_yes, NULL},
{"dialog_callback", "smith_chest", &smith_chest, NULL},
+ {"dialog_callback", "mage_give", &mage_give, NULL},
{NULL, NULL, NULL, NULL}
};
diff --git a/src/npc/mage.c b/src/npc/mage.c
new file mode 100644
index 0000000..6c42ec9
--- /dev/null
+++ b/src/npc/mage.c
@@ -0,0 +1,27 @@
+/*
+** EPITECH PROJECT, 2020
+** my_rpg
+** File description:
+** mage.c
+*/
+
+#include "components/dialog_holder.h"
+#include "components/player_component.h"
+#include "engine.h"
+
+void mage_give(gc_engine *engine)
+{
+ 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;
+ inv = GETCMP(player, player_component);
+ if (!inv)
+ return;
+ if (!inv->inventory_upgrades[1])
+ dialog_add_line(dialog, "", "You got the fireball upgrade!", NULL);
+ dialog->text[4] = NULL;
+ inv->inventory_upgrades[1] = true;
+}
\ No newline at end of file