blob: d78ed6dde1886a4d6ed2fc121f10594de266b015 (
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
|
/*
* File: ghost.h
* Summary: Player ghost and random Pandemonium demon handling.
*
* Created for Dungeon Crawl Reference by dshaligram on
* Thu Mar 15 20:10:20 2007 UTC.
*
* Modified for Crawl Reference by $Author: j-p-e-g $ on $Date: 2008-03-07 $
*/
#ifndef GHOST_H
#define GHOST_H
#include "externs.h"
#include "enum.h"
#include "itemprop.h"
#include "mon-util.h"
class ghost_demon
{
public:
std::string name;
species_type species;
job_type job;
skill_type best_skill;
short best_skill_level;
short xl;
short max_hp, ev, ac, damage, speed;
bool see_invis;
brand_type brand;
mon_resist_def resists;
bool spellcaster, cycle_colours;
flight_type fly;
monster_spells spells;
public:
ghost_demon();
void reset();
void init_random_demon();
void init_player_ghost();
public:
static std::vector<ghost_demon> find_ghosts();
private:
static int n_extra_ghosts();
static void find_extra_ghosts(std::vector<ghost_demon> &ghosts, int n);
static void find_transiting_ghosts(std::vector<ghost_demon> &gs, int n);
static void announce_ghost(const ghost_demon &g);
private:
void add_spells();
spell_type translate_spell(spell_type playerspell) const;
};
extern std::vector<ghost_demon> ghosts;
#endif
|