My Project
 
Loading...
Searching...
No Matches
char.h
Go to the documentation of this file.
1#pragma once
2
3#include "actor.h"
4#include "typedefine.h"
5
6class Buff;
7class CharSprite;
8
9class Char :public Actor, public Object{
10protected:
11 static const std::string TXT_HIT;
12 static const std::string TXT_KILL;
13 static const std::string TXT_DEFEAT;
14
15private:
16 static const std::string TXT_YOU_MISSED;
17 static const std::string TXT_SMB_MISSED;
18
19 static const std::string TXT_OUT_OF_PARALYSIS;
20
21 static const std::string POS;
22 static const std::string TAG_HP;
23 static const std::string TAG_HT;
24 static const std::string BUFFS;
25
26 static HashSet<std::string> EMPTY;
27
28public:
29 int pos;
30 std::string name;
31
32 int HT;
33 int HP;
35protected:
36 float baseSpeed;
37
38 virtual bool act();
39 virtual void spend(float time);
40
41 virtual void onRemove();
42public:
44 bool rooted;
45 bool flying;
47
49
50 std::set<Buff*> buffs;
51
52 Char();
54
55 virtual void storeInBundle(Bundle* bundle);
56 virtual void restoreFromBundle(Bundle* bundle);
57
60 bool immunitiesContain(const std::string& cls);
61
62 void add(Buff* buff);
63 void remove(Buff* buff);
64 void remove(const std::string& buffClass);
65
66 bool attack(Char* enemy);
67
68 static bool hit(Char* attacker, Char* defender, bool magic);
69
70 virtual int attackSkill(Char* target) { return 0; }
71 virtual int defenseSkill(Char* enemy) { return 0; }
72
73 virtual std::string defenseVerb() { return "dodged"; }
74 virtual int dr() { return 0; }
75 virtual int damageRoll() { return 1; }
76 virtual int attackProc(Char* enemy, int damage) { return damage; }
77 virtual int defenseProc(Char* enemy, int damage) { return damage; }
78
79 float speed();
80 virtual void damage(int dmg, const std::string& src);
81 void destroy();
82 virtual void die(const std::string& src);
83 bool isAlive() { return HP > 0; }
84
85 void Buffs(const std::string& c, std::set<Buff*>& re);
86 Buff* buff(const std::string& c);
87 std::set<Buff*> buffSet(const std::string& c);
88
89 bool isCharmedBy(Char* ch);
90
91 void updateSpriteState();
92
93 virtual int stealth() { return 0; }
94 virtual void move(int step);
95 int distance(Char* other);
96
97 void onMotionComplete() { next(); }
98
99 void onAttackComplete() { next(); }
100
102};
Actor()
Definition actor.cpp:84
void next()
Definition actor.h:33
Definition buff.h:10
Definition char.h:9
static bool hit(Char *attacker, Char *defender, bool magic)
Definition char.cpp:338
virtual void restoreFromBundle(Bundle *bundle)
Definition char.cpp:103
std::set< Buff * > buffs
Definition char.h:50
void updateSpriteState()
Definition char.cpp:454
int pos
Definition char.h:29
virtual void die(const std::string &src)
Definition char.cpp:395
int HT
Definition char.h:32
bool attack(Char *enemy)
Definition char.cpp:252
virtual void storeInBundle(Bundle *bundle)
Definition char.cpp:77
virtual int damageRoll()
Definition char.h:75
virtual int stealth()
Definition char.h:93
int distance(Char *other)
Definition char.cpp:510
void remove(Buff *buff)
Definition char.cpp:216
bool flying
Definition char.h:45
void add(Buff *buff)
Definition char.cpp:135
virtual bool act()
Definition char.cpp:49
void onOperateComplete()
Definition char.h:101
std::string name
Definition char.h:30
float speed()
Definition char.cpp:345
void onMotionComplete()
Definition char.h:97
virtual int attackSkill(Char *target)
Definition char.h:70
std::set< Buff * > buffSet(const std::string &c)
Definition char.cpp:426
int viewDistance
Definition char.h:48
int invisible
Definition char.h:46
virtual int defenseProc(Char *enemy, int damage)
Definition char.h:77
void onAttackComplete()
Definition char.h:99
static const std::string TXT_KILL
Definition char.h:12
HashSet< std::string > & immunities()
Definition char.cpp:125
Char()
Definition char.cpp:34
static const std::string TXT_DEFEAT
Definition char.h:13
bool rooted
Definition char.h:44
float baseSpeed
Definition char.h:36
int HP
Definition char.h:33
virtual void move(int step)
Definition char.cpp:481
HashSet< std::string > & resistances()
Definition char.cpp:120
bool immunitiesContain(const std::string &cls)
Definition char.cpp:130
void Buffs(const std::string &c, std::set< Buff * > &re)
Definition char.cpp:401
static const std::string TXT_HIT
Definition char.h:11
void destroy()
Definition char.cpp:388
bool isAlive()
Definition char.h:83
Buff * buff(const std::string &c)
Definition char.cpp:413
virtual int attackProc(Char *enemy, int damage)
Definition char.h:76
bool isCharmedBy(Char *ch)
Definition char.cpp:440
CLASSOBJECT(Char)
CharSprite * sprite
Definition char.h:34
virtual void damage(int dmg, const std::string &src)
Definition char.cpp:350
virtual void onRemove()
Definition char.cpp:68
bool paralysed
Definition char.h:43
virtual void spend(float time)
Definition char.cpp:55
virtual int defenseSkill(Char *enemy)
Definition char.h:71
virtual int dr()
Definition char.h:74
virtual std::string defenseVerb()
Definition char.h:73
Definition charsprite.h:13
Definition typedefine.h:16
Definition typedefine.h:69