summaryrefslogtreecommitdiff
path: root/src/skill_descriptor.hpp
blob: 8d9de004c03971b3599db3df9249b6bd9ae750a3 (plain)
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
#pragma once

#include "h-basic.h"
#include "skill_flag_set.hpp"
#include "skills_defs.hpp"

#include <vector>
#include <tuple>

/**
 * Skill descriptor.
 */
struct skill_descriptor {

	std::string name;                       /* Name */
	std::string desc;                       /* Description */

	std::string action_desc;                /* Action Description */
	s16b action_mkey = 0;                   /* Action do to */

	std::vector<std::size_t> excludes;      /* List of skills that this skill excludes;
						   any skill points assigned completely nullify
						   the listed skills */

	std::vector<std::tuple<std::size_t, int>> increases;
						/* List of skills the this skill increases,
						   along with the modifier that gets applied.
						   The first tuple element is the skill index. */

	s16b father = 0;                        /* Father in the skill tree */
	s16b order = 0;                         /* Order in the tree */

	byte random_gain_chance = 100;          /* Chance to gain from Lost Sword quest; if applicable */

	skill_flag_set flags;                   /* Skill flags */

};