mirror of
https://github.com/zoriya/ForecastingVillage.git
synced 2026-06-03 10:55:57 +00:00
Finishing a basic combat loop
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user