Skill ideas. Not sure I like them.
This commit is contained in:
parent
727e1f5dd3
commit
20cb94b529
12
src/skill.c
12
src/skill.c
|
@ -27,11 +27,22 @@ create_default(const char *s_label, Sprite *s)
|
||||||
{
|
{
|
||||||
Skill *skill = ec_malloc(sizeof(Skill));
|
Skill *skill = ec_malloc(sizeof(Skill));
|
||||||
m_strcpy(skill->label, 20, s_label);
|
m_strcpy(skill->label, 20, s_label);
|
||||||
|
skill->resetTime = 5;
|
||||||
|
skill->resetCountdown = 0;
|
||||||
skill->icon = s;
|
skill->icon = s;
|
||||||
skill->use = NULL;
|
skill->use = NULL;
|
||||||
return skill;
|
return skill;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool
|
||||||
|
skill_use_flurry(Skill *skill, SkillData *data)
|
||||||
|
{
|
||||||
|
Position pos = position_to_matrix_coords(&data->player->sprite->pos);
|
||||||
|
UNUSED(pos);
|
||||||
|
UNUSED(skill);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
static Skill *
|
static Skill *
|
||||||
create_flurry(void)
|
create_flurry(void)
|
||||||
{
|
{
|
||||||
|
@ -42,6 +53,7 @@ create_flurry(void)
|
||||||
s->clip = CLIP16(0, 0);
|
s->clip = CLIP16(0, 0);
|
||||||
s->fixed = true;
|
s->fixed = true;
|
||||||
Skill *skill = create_default("Flurry", s);
|
Skill *skill = create_default("Flurry", s);
|
||||||
|
skill->use = skill_use_flurry;
|
||||||
return skill;
|
return skill;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
11
src/skill.h
11
src/skill.h
|
@ -23,16 +23,25 @@
|
||||||
#include "player.h"
|
#include "player.h"
|
||||||
#include "roommatrix.h"
|
#include "roommatrix.h"
|
||||||
#include "sprite.h"
|
#include "sprite.h"
|
||||||
|
#include "vector2d.h"
|
||||||
|
|
||||||
enum SkillType {
|
enum SkillType {
|
||||||
FLURRY
|
FLURRY
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef struct SkillData_t {
|
||||||
|
Player *player;
|
||||||
|
RoomMatrix *matrix;
|
||||||
|
Vector2d direction;
|
||||||
|
} SkillData;
|
||||||
|
|
||||||
typedef struct Skill_t {
|
typedef struct Skill_t {
|
||||||
char label[20];
|
char label[20];
|
||||||
Sprite *icon;
|
Sprite *icon;
|
||||||
|
unsigned int resetTime;
|
||||||
|
unsigned int resetCountdown;
|
||||||
bool active;
|
bool active;
|
||||||
void (*use)(struct Skill_t*, Player*, RoomMatrix*);
|
bool (*use)(struct Skill_t*, SkillData*);
|
||||||
} Skill;
|
} Skill;
|
||||||
|
|
||||||
Skill*
|
Skill*
|
||||||
|
|
|
@ -19,6 +19,11 @@
|
||||||
#ifndef VECTOR2D_H_
|
#ifndef VECTOR2D_H_
|
||||||
#define VECTOR2D_H_
|
#define VECTOR2D_H_
|
||||||
|
|
||||||
|
#define VECTOR2D_RIGHT (Vector2d) { 1, 0 }
|
||||||
|
#define VECTOR2D_LEFT (Vector2d) { -1, 0 }
|
||||||
|
#define VECTOR2D_UP (Vector2d) { 0, -1 }
|
||||||
|
#define VECTOR2D_DOWN (Vector2d) { 0, 1 }
|
||||||
|
|
||||||
typedef struct Vector2d_t {
|
typedef struct Vector2d_t {
|
||||||
float x;
|
float x;
|
||||||
float y;
|
float y;
|
||||||
|
|
Loading…
Reference in New Issue