Repository navigation
Expand file tree
/
Copy pathSkill.h
More file actions
98 lines (79 loc) · 2.51 KB
/
Copy pathSkill.h
File metadata and controls
98 lines (79 loc) · 2.51 KB
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
94
95
96
97
98
#pragma once
#include "Common.h"
#include <cliext/map>
ref struct Skill;
ref struct Query;
ref struct SkillTag;
ref struct Ability
{
typedef System::Collections::Generic::Dictionary< unsigned, Skill^ > SkillMap_t;
System::String^ name;
List_t< SkillTag^ > tags;
bool relevant, related, set_ability, unlocked_by_set_bonus;
unsigned static_index, max_level, set_bonus_unlocked_at_hr;
int order;
SkillMap_t skills;
Decoration^ decoration;
Skill^ GetSkill( const unsigned amount );
Skill^ GetWorstGoodSkill();
static List_t< Ability^ > static_abilities, ordered_abilities; //for sorting alphabetically
static Map_t< System::String^, Ability^ > static_ability_map;
static Ability^ FindAbility( System::String^ name );
static void UpdateOrdering();
};
ref struct SpecificAbility
{
static Ability^ fire_res;
static Ability^ water_res;
static Ability^ thunder_res;
static Ability^ ice_res;
static Ability^ dragon_res;
static Ability^ defence;
static Ability^ nonelemental_boost;
static Ability^ free_element;
};
int CompareAbilitiesByName( Ability^ a1, Ability^ a2 );
ref struct Skill
{
System::String^ name;
unsigned order, static_index, level;
bool best, impossible, extra;
Ability^ ability;
System::String^ description;
static void Load( System::String^ filename );
static void LoadSetSkills( System::String^ filename );
static void LoadLanguage( System::String^ filename );
static void LoadDescriptions( System::String^ filename );
static Map_t< Skill^, Skill^ > set_skill_map;
static List_t< Skill^ > static_skills, ordered_skills; //for sorting alphabetically
static Map_t< System::String^, Skill^ > static_skill_map;
static Skill^ FindSkill( System::String^ name );
static void UpdateOrdering();
static bool UpdateImpossibleSkills( const unsigned hr );
};
ref struct AbilityPair
{
Ability^ ability;
unsigned amount;
AbilityPair( Ability^ ab, const unsigned am )
: ability( ab ), amount( am ) {}
};
void FindRelatedSkills( List_t< System::Windows::Forms::ComboBox^ >% skills, List_t< System::Windows::Forms::ComboBox^ >% skill_filters, List_t< Map_t< unsigned, unsigned >^ >% index_maps );
ref struct ExtraSkill
{
Skill^ skill;
bool want;
ExtraSkill( Skill^ skill, const bool want ) : skill( skill ), want( want ) {}
};
ref struct FilterRules
{
Ability^ ability;
List_t< Ability^ > required, unrequired;
bool IsRelevant();
};
ref struct ExtraSkillFilters
{
static Map_t< Ability^, FilterRules^ > filter_rules;
static List_t< FilterRules^ > extra_filters;
static void Load( System::String^ filename );
};