mirror of
https://github.com/zoriya/ForecastingVillage.git
synced 2026-05-07 05:38:50 +00:00
49 lines
1.1 KiB
C
49 lines
1.1 KiB
C
/*
|
|
** EPITECH PROJECT, 2020
|
|
** my_rpg
|
|
** File description:
|
|
** combat_manager.h
|
|
*/
|
|
|
|
|
|
#ifndef MY_RPG_COMBAT_MANAGER_H
|
|
#define MY_RPG_COMBAT_MANAGER_H
|
|
|
|
#include <components/attack_component.h>
|
|
#include "system.h"
|
|
#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;
|
|
struct attack_holder *next_enemy_attack;
|
|
enum combat_state state;
|
|
char *last_attack;
|
|
int last_damage;
|
|
int last_enemy_damage;
|
|
};
|
|
|
|
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 combat_end(gc_engine *engine, bool has_won);
|
|
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
|