aboutsummaryrefslogtreecommitdiff
path: root/src/monster.hh
blob: f7ce3f548eae6bf8607c7c675f140e826336c2a1 (plain) (blame)
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#ifndef TIBIA_MONSTER_HH_
#define TIBIA_MONSTER_HH_ 1

#include "common.hh"
#include "creature.hh"
#include "containers.hh"
#include "enums.hh"

struct TSkillData {
    int Nr;
    int Actual;
    int Minimum;
    int Maximum;
    int NextLevel;
    int FactorPercent;
    int AddLevel;
};

struct TItemData {
    ObjectType Type;
    int Maximum;
    int Probability;
};

struct TSpellData {
    SpellShapeType Shape;
    int ShapeParam1;
    int ShapeParam2;
    int ShapeParam3;
    int ShapeParam4;
    SpellImpactType Impact;
    int ImpactParam1;
    int ImpactParam2;
    int ImpactParam3;
    int ImpactParam4;
    int Delay;
};

struct TRaceData {
    char Name[30];
    char Article[3];
    TOutfit Outfit;
    ObjectType MaleCorpse;
    ObjectType FemaleCorpse;
    BloodType Blood;
    int ExperiencePoints;
    int FleeThreshold;
    int Attack;
    int Defend;
    int Armor;
    int Poison;
    int SummonCost;
    int LoseTarget;
    int Strategy[4];
    bool KickBoxes;
    bool KickCreatures;
    bool SeeInvisible;
    bool Unpushable;
    bool DistanceFighting;
    bool NoSummon;
    bool NoIllusion;
    bool NoConvince;
    bool NoBurning;
    bool NoPoison;
    bool NoEnergy;
    bool NoHit;
    bool NoLifeDrain;
    bool NoParalyze;
    int Skills;
    vector<TSkillData> Skill;
    int Talks;
    vector<uint32> Talk; // POINTER? Probably a reference from `AddDynamicString`?
    int Items;
    vector<TItemData> Item;
    int Spells;
    vector<TSpellData> Spell;
};

#if 0
// TODO(fusion):
struct TMonster: TNonplayer {
    int Home;
    uint32 Master;
    uint32 Target;
};
#endif

//#define MAX_RACES 512
extern TRaceData RaceData[512];
extern int KilledCreatures[512];
extern int KilledPlayers[512];

#endif //TIBIA_MONSTER_HH_