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