-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathitem.h
79 lines (67 loc) · 1.46 KB
/
item.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#ifndef ITEM_H
#define ITEM_H
typedef enum
{
WEAPON,
ARMOR,
POTION,
QUEST_ITEM,
RING,
CONSUMABLE,
// ADD MORE AS NEEDED
}Itemtype;
typedef enum {
NO_BUFF,
ATT_INC,
ATT_DEC,
DEF_INC,
DEF_DEC,
HP_INC,
HP_DEC,
AGI_INC,
AGI_DEC,
STR_INC,
STR_DEC,
DEX_INC,
DEX_DEC,
INT_INC,
INT_DEC,
LUCK_INC,
LUCK_DEC,
// Add more buffs and debuffs as needed
} TypeOfBuff;
typedef struct {
TypeOfBuff effect;
int duration;
int valueType; // 0 for direct value change, 1 for percentage change
int type; //ACTIVE(0) OR PASSIVE(1)
int value;
} BUFF;
typedef enum
{
COMMON,
UNCOMMON,
RARE,
UNIQUE,
LEGENDARY,
MYTHICAL,
// ADD MORE AS NEEDED
}Grade;
typedef struct
{
char *name; //Use strdup
char *description;
int durability;
Grade grade;
BUFF buff;
Itemtype type;
}Item;
// Function prototypes
void createItem(Item *item,const char name[],const char desc[],Grade grade,Itemtype itemtype,TypeOfBuff effect,int duration,int valueType,int type,int value);
void modifyItem(Item *item,const char name[],const char desc[],Grade grade,Itemtype itemtype,TypeOfBuff effect,int duration,int valueType,int type,int value);
void inspectItem(Item item);//generates item data
void useItem(Player *player,Item *item);
void destroyItem(Item *item);
// void serializeItem(Item item, FILE *file);
// void deserializeItem(Item *item, FILE *file);
#endif