Finishing a basic combat loop

This commit is contained in:
Anonymus Raccoon
2020-04-24 13:57:44 +02:00
parent 4fc359ab5a
commit f7df7144e7
10 changed files with 94 additions and 27 deletions
+1 -1
View File
@@ -11,7 +11,7 @@
#include "component.h"
typedef void (*attack)(gc_entity *from, gc_entity *enemy);
typedef void (*attack)(gc_engine *engine, gc_entity *from, gc_entity *enemy);
typedef struct attack_holder {
char *name;
-9
View File
@@ -11,18 +11,9 @@
#include "component.h"
enum combat_state
{
ATTACK,
ATTACKING,
DEFENDING,
IDLE
};
struct combat_holder
{
gc_component base;
enum combat_state state;
char *name;
};
+1
View File
@@ -48,5 +48,6 @@ const struct dialog_manager dialog_manager;
void dialog_next(gc_engine *engine);
void dialog_add_line(struct dialog_holder *this, char *name, char *text, \
struct dialog_input *inputs);
void show_dialog_if_hidden(gc_engine *engine);
#endif //MY_RPG_DIALOG_HOLDER_H
+14 -2
View File
@@ -13,10 +13,20 @@
#include "components/combat_holder.h"
#include "components/dialog_holder.h"
enum combat_state
{
ATTACK,
DEFEND,
ATTACKING,
DEFENDING,
IDLE
};
struct combat_manager {
gc_system base;
gc_scene *game_scene;
struct enemy *current_enemy;
enum combat_state state;
};
extern const struct combat_manager combat_manager;
@@ -24,7 +34,9 @@ extern const struct combat_manager combat_manager;
#define ATTACK_TEXT "What attack will you do?"
void combat_start(gc_engine *engine, char *enemy_name);
void show_attacks(struct combat_holder *cmp, struct dialog_holder *dialog, \
gc_scene *scene);
void show_attacks(struct combat_manager *this, struct dialog_holder *dialog, \
gc_scene *scene, gc_engine *engine);
void defend(struct combat_manager *this, struct dialog_holder *dialog, \
gc_scene *scene, gc_engine *engine);
#endif //MY_RPG_COMBAT_MANAGER_H