Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
achievement_scripts.cpp
Go to the documentation of this file.
1
/*
2
* This file is part of Project SkyFire https://www.projectskyfire.org.
3
* See LICENSE.md file for Copyright information
4
*/
5
6
#include "
ScriptMgr.h
"
7
#include "
BattlegroundSA.h
"
8
#include "
BattlegroundIC.h
"
9
#include "
Vehicle.h
"
10
#include "
Player.h
"
11
#include "
Creature.h
"
12
13
class
achievement_resilient_victory
:
public
AchievementCriteriaScript
14
{
15
public
:
16
achievement_resilient_victory
() :
AchievementCriteriaScript
(
"achievement_resilient_victory"
) { }
17
18
bool
OnCheck
(
Player
* source,
Unit
* target)
OVERRIDE
19
{
20
if
(
Battleground
* bg = source->GetBattleground())
21
return
bg->CheckAchievementCriteriaMeet(
BG_CRITERIA_CHECK_RESILIENT_VICTORY
, source, target);
22
23
return
false
;
24
}
25
};
26
27
class
achievement_bg_control_all_nodes
:
public
AchievementCriteriaScript
28
{
29
public
:
30
achievement_bg_control_all_nodes
() :
AchievementCriteriaScript
(
"achievement_bg_control_all_nodes"
) { }
31
32
bool
OnCheck
(
Player
* source,
Unit
*
/*target*/
)
OVERRIDE
33
{
34
if
(
Battleground
* bg = source->GetBattleground())
35
return
bg->IsAllNodesControlledByTeam(source->GetTeam());
36
37
return
false
;
38
}
39
};
40
41
class
achievement_save_the_day
:
public
AchievementCriteriaScript
42
{
43
public
:
44
achievement_save_the_day
() :
AchievementCriteriaScript
(
"achievement_save_the_day"
) { }
45
46
bool
OnCheck
(
Player
* source,
Unit
* target)
OVERRIDE
47
{
48
if
(
Battleground
* bg = source->GetBattleground())
49
return
bg->CheckAchievementCriteriaMeet(
BG_CRITERIA_CHECK_SAVE_THE_DAY
, source, target);
50
51
return
false
;
52
}
53
};
54
55
class
achievement_bg_ic_resource_glut
:
public
AchievementCriteriaScript
56
{
57
public
:
58
achievement_bg_ic_resource_glut
() :
AchievementCriteriaScript
(
"achievement_bg_ic_resource_glut"
) { }
59
60
bool
OnCheck
(
Player
* source,
Unit
*
/*target*/
)
OVERRIDE
61
{
62
if
(source->HasAura(
SPELL_OIL_REFINERY
) && source->HasAura(
SPELL_QUARRY
))
63
return
true
;
64
65
return
false
;
66
}
67
};
68
69
class
achievement_bg_ic_glaive_grave
:
public
AchievementCriteriaScript
70
{
71
public
:
72
achievement_bg_ic_glaive_grave
() :
AchievementCriteriaScript
(
"achievement_bg_ic_glaive_grave"
) { }
73
74
bool
OnCheck
(
Player
* source,
Unit
*
/*target*/
)
OVERRIDE
75
{
76
if
(
Creature
* vehicle = source->
GetVehicleCreatureBase
())
77
{
78
if
(vehicle->GetEntry() ==
NPC_GLAIVE_THROWER_H
|| vehicle->GetEntry() ==
NPC_GLAIVE_THROWER_A
)
79
return
true
;
80
}
81
82
return
false
;
83
}
84
};
85
86
class
achievement_bg_ic_mowed_down
:
public
AchievementCriteriaScript
87
{
88
public
:
89
achievement_bg_ic_mowed_down
() :
AchievementCriteriaScript
(
"achievement_bg_ic_mowed_down"
) { }
90
91
bool
OnCheck
(
Player
* source,
Unit
*
/*target*/
)
OVERRIDE
92
{
93
if
(
Creature
* vehicle = source->
GetVehicleCreatureBase
())
94
{
95
if
(vehicle->GetEntry() ==
NPC_KEEP_CANNON
)
96
return
true
;
97
}
98
99
return
false
;
100
}
101
};
102
103
class
achievement_bg_sa_artillery
:
public
AchievementCriteriaScript
104
{
105
public
:
106
achievement_bg_sa_artillery
() :
AchievementCriteriaScript
(
"achievement_bg_sa_artillery"
) { }
107
108
bool
OnCheck
(
Player
* source,
Unit
*
/*target*/
)
OVERRIDE
109
{
110
if
(
Creature
* vehicle = source->
GetVehicleCreatureBase
())
111
{
112
if
(vehicle->GetEntry() ==
NPC_ANTI_PERSONNAL_CANNON
)
113
return
true
;
114
}
115
116
return
false
;
117
}
118
};
119
120
class
achievement_arena_kills
:
public
AchievementCriteriaScript
121
{
122
public
:
123
achievement_arena_kills
(
char
const
* name,
uint8
arenaType) :
AchievementCriteriaScript
(name),
124
_arenaType
(arenaType)
125
{
126
}
127
128
bool
OnCheck
(
Player
* source,
Unit
*
/*target*/
)
OVERRIDE
129
{
130
// this checks GetBattleground() for NULL already
131
if
(!source->InArena())
132
return
false
;
133
134
return
source->GetBattleground()->GetArenaType() ==
_arenaType
;
135
}
136
137
private
:
138
uint8
const
_arenaType
;
139
};
140
141
class
achievement_sickly_gazelle
:
public
AchievementCriteriaScript
142
{
143
public
:
144
achievement_sickly_gazelle
() :
AchievementCriteriaScript
(
"achievement_sickly_gazelle"
) { }
145
146
bool
OnCheck
(
Player
*
/*source*/
,
Unit
* target)
OVERRIDE
147
{
148
if
(!target)
149
return
false
;
150
151
if
(
Player
* victim = target->
ToPlayer
())
152
if
(victim->IsMounted())
153
return
true
;
154
155
return
false
;
156
}
157
};
158
159
class
achievement_everything_counts
:
public
AchievementCriteriaScript
160
{
161
public
:
162
achievement_everything_counts
() :
AchievementCriteriaScript
(
"achievement_everything_counts"
) { }
163
164
bool
OnCheck
(
Player
* source,
Unit
* target)
OVERRIDE
165
{
166
if
(
Battleground
* bg = source->GetBattleground())
167
return
bg->CheckAchievementCriteriaMeet(
BG_CRITERIA_CHECK_EVERYTHING_COUNTS
, source, target);
168
169
return
false
;
170
}
171
};
172
173
class
achievement_bg_av_perfection
:
public
AchievementCriteriaScript
174
{
175
public
:
176
achievement_bg_av_perfection
() :
AchievementCriteriaScript
(
"achievement_bg_av_perfection"
) { }
177
178
bool
OnCheck
(
Player
* source,
Unit
* target)
OVERRIDE
179
{
180
if
(
Battleground
* bg = source->GetBattleground())
181
return
bg->CheckAchievementCriteriaMeet(
BG_CRITERIA_CHECK_AV_PERFECTION
, source, target);
182
183
return
false
;
184
}
185
};
186
187
class
achievement_bg_sa_defense_of_ancients
:
public
AchievementCriteriaScript
188
{
189
public
:
190
achievement_bg_sa_defense_of_ancients
() :
AchievementCriteriaScript
(
"achievement_bg_sa_defense_of_ancients"
) { }
191
192
bool
OnCheck
(
Player
* source,
Unit
* target)
OVERRIDE
193
{
194
if
(
Battleground
* bg = source->GetBattleground())
195
return
bg->CheckAchievementCriteriaMeet(
BG_CRITERIA_CHECK_DEFENSE_OF_THE_ANCIENTS
, source, target);
196
197
return
false
;
198
}
199
};
200
201
enum
ArgentTournamentAreas
202
{
203
AREA_ARGENT_TOURNAMENT_FIELDS
= 4658,
204
AREA_RING_OF_ASPIRANTS
= 4670,
205
AREA_RING_OF_ARGENT_VALIANTS
= 4671,
206
AREA_RING_OF_ALLIANCE_VALIANTS
= 4672,
207
AREA_RING_OF_HORDE_VALIANTS
= 4673,
208
AREA_RING_OF_CHAMPIONS
= 4669,
209
};
210
211
class
achievement_tilted
:
public
AchievementCriteriaScript
212
{
213
public
:
214
achievement_tilted
() :
AchievementCriteriaScript
(
"achievement_tilted"
) { }
215
216
bool
OnCheck
(
Player
* player,
Unit
*
/*target*/
)
OVERRIDE
217
{
218
if
(!player)
219
return
false
;
220
221
bool
checkArea = player->GetAreaId() ==
AREA_ARGENT_TOURNAMENT_FIELDS
||
222
player->GetAreaId() ==
AREA_RING_OF_ASPIRANTS
||
223
player->GetAreaId() ==
AREA_RING_OF_ARGENT_VALIANTS
||
224
player->GetAreaId() ==
AREA_RING_OF_ALLIANCE_VALIANTS
||
225
player->GetAreaId() ==
AREA_RING_OF_HORDE_VALIANTS
||
226
player->GetAreaId() ==
AREA_RING_OF_CHAMPIONS
;
227
228
return
checkArea && player->duel && player->duel->isMounted;
229
}
230
};
231
232
class
achievement_not_even_a_scratch
:
public
AchievementCriteriaScript
233
{
234
public
:
235
achievement_not_even_a_scratch
() :
AchievementCriteriaScript
(
"achievement_not_even_a_scratch"
) { }
236
237
bool
OnCheck
(
Player
* source,
Unit
* target)
OVERRIDE
238
{
239
if
(
Battleground
* bg = source->GetBattleground())
240
return
bg->CheckAchievementCriteriaMeet(
BG_CRITERIA_CHECK_NOT_EVEN_A_SCRATCH
, source, target);
241
242
return
false
;
243
}
244
};
245
246
enum
FlirtWithDisaster
247
{
248
AURA_PERFUME_FOREVER
= 70235,
249
AURA_PERFUME_ENCHANTRESS
= 70234,
250
AURA_PERFUME_VICTORY
= 70233,
251
};
252
253
class
achievement_flirt_with_disaster_perf_check
:
public
AchievementCriteriaScript
254
{
255
public
:
256
achievement_flirt_with_disaster_perf_check
() :
AchievementCriteriaScript
(
"achievement_flirt_with_disaster_perf_check"
) { }
257
258
bool
OnCheck
(
Player
* player,
Unit
*
/*target*/
)
OVERRIDE
259
{
260
if
(!player)
261
return
false
;
262
263
if
(player->HasAura(
AURA_PERFUME_FOREVER
) || player->HasAura(
AURA_PERFUME_ENCHANTRESS
) || player->HasAura(
AURA_PERFUME_VICTORY
))
264
return
true
;
265
266
return
false
;
267
}
268
};
269
270
class
achievement_killed_exp_or_honor_target
:
public
AchievementCriteriaScript
271
{
272
public
:
273
achievement_killed_exp_or_honor_target
() :
AchievementCriteriaScript
(
"achievement_killed_exp_or_honor_target"
) { }
274
275
bool
OnCheck
(
Player
* player,
Unit
* target)
OVERRIDE
276
{
277
return
target && player->isHonorOrXPTarget(target);
278
}
279
};
280
281
void
AddSC_achievement_scripts
()
282
{
283
new
achievement_resilient_victory
();
284
new
achievement_bg_control_all_nodes
();
285
new
achievement_save_the_day
();
286
new
achievement_bg_ic_resource_glut
();
287
new
achievement_bg_ic_glaive_grave
();
288
new
achievement_bg_ic_mowed_down
();
289
new
achievement_bg_sa_artillery
();
290
new
achievement_sickly_gazelle
();
291
new
achievement_everything_counts
();
292
new
achievement_bg_av_perfection
();
293
new
achievement_arena_kills
(
"achievement_arena_2v2_kills"
,
ARENA_TYPE_2v2
);
294
new
achievement_arena_kills
(
"achievement_arena_3v3_kills"
,
ARENA_TYPE_3v3
);
295
new
achievement_arena_kills
(
"achievement_arena_5v5_kills"
,
ARENA_TYPE_5v5
);
296
new
achievement_bg_sa_defense_of_ancients
();
297
new
achievement_tilted
();
298
new
achievement_not_even_a_scratch
();
299
new
achievement_flirt_with_disaster_perf_check
();
300
new
achievement_killed_exp_or_honor_target
();
301
}
BG_CRITERIA_CHECK_AV_PERFECTION
@ BG_CRITERIA_CHECK_AV_PERFECTION
Definition
Battleground.h:34
BG_CRITERIA_CHECK_SAVE_THE_DAY
@ BG_CRITERIA_CHECK_SAVE_THE_DAY
Definition
Battleground.h:32
BG_CRITERIA_CHECK_DEFENSE_OF_THE_ANCIENTS
@ BG_CRITERIA_CHECK_DEFENSE_OF_THE_ANCIENTS
Definition
Battleground.h:35
BG_CRITERIA_CHECK_RESILIENT_VICTORY
@ BG_CRITERIA_CHECK_RESILIENT_VICTORY
Definition
Battleground.h:31
BG_CRITERIA_CHECK_EVERYTHING_COUNTS
@ BG_CRITERIA_CHECK_EVERYTHING_COUNTS
Definition
Battleground.h:33
BG_CRITERIA_CHECK_NOT_EVEN_A_SCRATCH
@ BG_CRITERIA_CHECK_NOT_EVEN_A_SCRATCH
Definition
Battleground.h:36
ARENA_TYPE_5v5
@ ARENA_TYPE_5v5
Definition
Battleground.h:172
ARENA_TYPE_3v3
@ ARENA_TYPE_3v3
Definition
Battleground.h:171
ARENA_TYPE_2v2
@ ARENA_TYPE_2v2
Definition
Battleground.h:170
BattlegroundIC.h
NPC_KEEP_CANNON
@ NPC_KEEP_CANNON
Definition
BattlegroundIC.h:25
NPC_GLAIVE_THROWER_A
@ NPC_GLAIVE_THROWER_A
Definition
BattlegroundIC.h:29
NPC_GLAIVE_THROWER_H
@ NPC_GLAIVE_THROWER_H
Definition
BattlegroundIC.h:30
SPELL_QUARRY
@ SPELL_QUARRY
Definition
BattlegroundIC.h:647
SPELL_OIL_REFINERY
@ SPELL_OIL_REFINERY
Definition
BattlegroundIC.h:646
BattlegroundSA.h
NPC_ANTI_PERSONNAL_CANNON
@ NPC_ANTI_PERSONNAL_CANNON
Definition
BattlegroundSA.h:100
Creature.h
uint8
std::uint8_t uint8
Definition
Define.h:79
OVERRIDE
#define OVERRIDE
Definition
Define.h:60
Player.h
ScriptMgr.h
Vehicle.h
ArgentTournamentAreas
ArgentTournamentAreas
Definition
achievement_scripts.cpp:202
AREA_RING_OF_ALLIANCE_VALIANTS
@ AREA_RING_OF_ALLIANCE_VALIANTS
Definition
achievement_scripts.cpp:206
AREA_RING_OF_ARGENT_VALIANTS
@ AREA_RING_OF_ARGENT_VALIANTS
Definition
achievement_scripts.cpp:205
AREA_ARGENT_TOURNAMENT_FIELDS
@ AREA_ARGENT_TOURNAMENT_FIELDS
Definition
achievement_scripts.cpp:203
AREA_RING_OF_CHAMPIONS
@ AREA_RING_OF_CHAMPIONS
Definition
achievement_scripts.cpp:208
AREA_RING_OF_ASPIRANTS
@ AREA_RING_OF_ASPIRANTS
Definition
achievement_scripts.cpp:204
AREA_RING_OF_HORDE_VALIANTS
@ AREA_RING_OF_HORDE_VALIANTS
Definition
achievement_scripts.cpp:207
AddSC_achievement_scripts
void AddSC_achievement_scripts()
Definition
achievement_scripts.cpp:281
FlirtWithDisaster
FlirtWithDisaster
Definition
achievement_scripts.cpp:247
AURA_PERFUME_FOREVER
@ AURA_PERFUME_FOREVER
Definition
achievement_scripts.cpp:248
AURA_PERFUME_ENCHANTRESS
@ AURA_PERFUME_ENCHANTRESS
Definition
achievement_scripts.cpp:249
AURA_PERFUME_VICTORY
@ AURA_PERFUME_VICTORY
Definition
achievement_scripts.cpp:250
AchievementCriteriaScript::AchievementCriteriaScript
AchievementCriteriaScript(const char *name)
Definition
ScriptMgr.cpp:1508
Battleground
Definition
Battleground.h:275
Creature
Definition
Creature.h:427
Object::ToPlayer
Player * ToPlayer()
Definition
Object.h:204
Player
Definition
Player.h:1289
Unit
Definition
Unit.h:1367
Unit::GetVehicleCreatureBase
Creature * GetVehicleCreatureBase() const
Definition
Unit.cpp:7208
achievement_arena_kills
Definition
achievement_scripts.cpp:121
achievement_arena_kills::OnCheck
bool OnCheck(Player *source, Unit *) OVERRIDE
Definition
achievement_scripts.cpp:128
achievement_arena_kills::achievement_arena_kills
achievement_arena_kills(char const *name, uint8 arenaType)
Definition
achievement_scripts.cpp:123
achievement_arena_kills::_arenaType
uint8 const _arenaType
Definition
achievement_scripts.cpp:138
achievement_bg_av_perfection
Definition
achievement_scripts.cpp:174
achievement_bg_av_perfection::achievement_bg_av_perfection
achievement_bg_av_perfection()
Definition
achievement_scripts.cpp:176
achievement_bg_av_perfection::OnCheck
bool OnCheck(Player *source, Unit *target) OVERRIDE
Definition
achievement_scripts.cpp:178
achievement_bg_control_all_nodes
Definition
achievement_scripts.cpp:28
achievement_bg_control_all_nodes::OnCheck
bool OnCheck(Player *source, Unit *) OVERRIDE
Definition
achievement_scripts.cpp:32
achievement_bg_control_all_nodes::achievement_bg_control_all_nodes
achievement_bg_control_all_nodes()
Definition
achievement_scripts.cpp:30
achievement_bg_ic_glaive_grave
Definition
achievement_scripts.cpp:70
achievement_bg_ic_glaive_grave::achievement_bg_ic_glaive_grave
achievement_bg_ic_glaive_grave()
Definition
achievement_scripts.cpp:72
achievement_bg_ic_glaive_grave::OnCheck
bool OnCheck(Player *source, Unit *) OVERRIDE
Definition
achievement_scripts.cpp:74
achievement_bg_ic_mowed_down
Definition
achievement_scripts.cpp:87
achievement_bg_ic_mowed_down::OnCheck
bool OnCheck(Player *source, Unit *) OVERRIDE
Definition
achievement_scripts.cpp:91
achievement_bg_ic_mowed_down::achievement_bg_ic_mowed_down
achievement_bg_ic_mowed_down()
Definition
achievement_scripts.cpp:89
achievement_bg_ic_resource_glut
Definition
achievement_scripts.cpp:56
achievement_bg_ic_resource_glut::OnCheck
bool OnCheck(Player *source, Unit *) OVERRIDE
Definition
achievement_scripts.cpp:60
achievement_bg_ic_resource_glut::achievement_bg_ic_resource_glut
achievement_bg_ic_resource_glut()
Definition
achievement_scripts.cpp:58
achievement_bg_sa_artillery
Definition
achievement_scripts.cpp:104
achievement_bg_sa_artillery::achievement_bg_sa_artillery
achievement_bg_sa_artillery()
Definition
achievement_scripts.cpp:106
achievement_bg_sa_artillery::OnCheck
bool OnCheck(Player *source, Unit *) OVERRIDE
Definition
achievement_scripts.cpp:108
achievement_bg_sa_defense_of_ancients
Definition
achievement_scripts.cpp:188
achievement_bg_sa_defense_of_ancients::achievement_bg_sa_defense_of_ancients
achievement_bg_sa_defense_of_ancients()
Definition
achievement_scripts.cpp:190
achievement_bg_sa_defense_of_ancients::OnCheck
bool OnCheck(Player *source, Unit *target) OVERRIDE
Definition
achievement_scripts.cpp:192
achievement_everything_counts
Definition
achievement_scripts.cpp:160
achievement_everything_counts::OnCheck
bool OnCheck(Player *source, Unit *target) OVERRIDE
Definition
achievement_scripts.cpp:164
achievement_everything_counts::achievement_everything_counts
achievement_everything_counts()
Definition
achievement_scripts.cpp:162
achievement_flirt_with_disaster_perf_check
Definition
achievement_scripts.cpp:254
achievement_flirt_with_disaster_perf_check::OnCheck
bool OnCheck(Player *player, Unit *) OVERRIDE
Definition
achievement_scripts.cpp:258
achievement_flirt_with_disaster_perf_check::achievement_flirt_with_disaster_perf_check
achievement_flirt_with_disaster_perf_check()
Definition
achievement_scripts.cpp:256
achievement_killed_exp_or_honor_target
Definition
achievement_scripts.cpp:271
achievement_killed_exp_or_honor_target::OnCheck
bool OnCheck(Player *player, Unit *target) OVERRIDE
Definition
achievement_scripts.cpp:275
achievement_killed_exp_or_honor_target::achievement_killed_exp_or_honor_target
achievement_killed_exp_or_honor_target()
Definition
achievement_scripts.cpp:273
achievement_not_even_a_scratch
Definition
achievement_scripts.cpp:233
achievement_not_even_a_scratch::achievement_not_even_a_scratch
achievement_not_even_a_scratch()
Definition
achievement_scripts.cpp:235
achievement_not_even_a_scratch::OnCheck
bool OnCheck(Player *source, Unit *target) OVERRIDE
Definition
achievement_scripts.cpp:237
achievement_resilient_victory
Definition
achievement_scripts.cpp:14
achievement_resilient_victory::achievement_resilient_victory
achievement_resilient_victory()
Definition
achievement_scripts.cpp:16
achievement_resilient_victory::OnCheck
bool OnCheck(Player *source, Unit *target) OVERRIDE
Definition
achievement_scripts.cpp:18
achievement_save_the_day
Definition
achievement_scripts.cpp:42
achievement_save_the_day::achievement_save_the_day
achievement_save_the_day()
Definition
achievement_scripts.cpp:44
achievement_save_the_day::OnCheck
bool OnCheck(Player *source, Unit *target) OVERRIDE
Definition
achievement_scripts.cpp:46
achievement_sickly_gazelle
Definition
achievement_scripts.cpp:142
achievement_sickly_gazelle::OnCheck
bool OnCheck(Player *, Unit *target) OVERRIDE
Definition
achievement_scripts.cpp:146
achievement_sickly_gazelle::achievement_sickly_gazelle
achievement_sickly_gazelle()
Definition
achievement_scripts.cpp:144
achievement_tilted
Definition
achievement_scripts.cpp:212
achievement_tilted::achievement_tilted
achievement_tilted()
Definition
achievement_scripts.cpp:214
achievement_tilted::OnCheck
bool OnCheck(Player *player, Unit *) OVERRIDE
Definition
achievement_scripts.cpp:216
src
server
scripts
World
achievement_scripts.cpp
Generated on
for Project SkyFire Core by
1.17.0