blob: dd246a11d9429d4f622a5e65b21b6e2792321581 (
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
|
#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
extern TRaceData RaceData[512];
#endif //TIBIA_MONSTER_HH_
|