Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Toggle main menu visibility
Loading...
Searching...
No Matches
SpellCalculations.h
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
#ifndef SF_SPELLCALCULATIONS_H
7
#define SF_SPELLCALCULATIONS_H
8
9
#include "
SharedDefines.h
"
10
11
namespace
Skyfire
12
{
13
namespace
Spells
14
{
15
struct
SpellTickEffectInfo
16
{
17
uint32
Effect
;
18
uint32
ApplyAuraName
;
19
uint32
ApplyAuraTickCount
;
20
};
21
22
struct
SpellRadiusCalculationData
23
{
24
bool
HasRadius
;
25
float
RadiusMin
;
26
float
RadiusPerLevel
;
27
float
RadiusMax
;
28
bool
HasMaxRadius
;
29
float
MaxRadiusMin
;
30
bool
HasCaster
;
31
uint8
CasterLevel
;
32
};
33
34
enum
SpellPowerCostCalculationStatus
35
{
36
SPELL_POWER_COST_OK
,
37
SPELL_POWER_COST_UNSUPPORTED_POWER_TYPE
,
38
SPELL_POWER_COST_UNKNOWN_POWER_TYPE
39
};
40
41
struct
SpellPowerCostCalculationData
42
{
43
uint32
BasePowerCost
;
44
uint32
BasePeriodicPowerCost
;
45
float
PowerCostPercentage
;
46
float
ChannelCostPercentage
;
47
int32
PowerType
;
48
uint32
CreatedHealth
;
49
uint32
MaxPower
;
50
};
51
52
struct
SpellPowerCostCalculationResult
53
{
54
uint32
PowerCost
;
55
uint32
PeriodicPowerCost
;
56
SpellPowerCostCalculationStatus
Status
;
57
};
58
59
int32
CalculateBaseCastTime
(
uint8
level,
int32
castTimeMin,
int32
castTimeMax,
int32
castTimeMaxLevel,
int32
fallbackCastTime);
60
uint32
FinalizeCastTime
(
int32
castTime,
bool
addRangedAmmoDelay);
61
int32
NormalizeDurationValue
(
int32
duration);
62
int32
CalculateDuration
(
bool
hasDurationEntry,
int32
duration);
63
uint32
CalculateMaxTicks
(
int32
duration,
SpellTickEffectInfo
const
* effects,
uint32
effectCount);
64
int32
CalculateEffectBaseValue
(
int32
value,
int32
dieSides);
65
float
CalculateRadius
(
SpellRadiusCalculationData
const
& data);
66
float
SelectSpellRange
(
bool
hasRangeEntry,
float
friendRange,
float
hostileRange,
bool
positive);
67
uint32
CalculateRecoveryTime
(
uint32
recoveryTime,
uint32
categoryRecoveryTime);
68
SpellPowerCostCalculationResult
CalculateSpellPowerCosts
(
SpellPowerCostCalculationData
const
& data);
69
}
70
}
71
72
#endif
int32
std::int32_t int32
Definition
Define.h:73
uint8
std::uint8_t uint8
Definition
Define.h:79
uint32
std::uint32_t uint32
Definition
Define.h:77
SharedDefines.h
Skyfire::Spells
Definition
SpellAuraMetadata.cpp:13
Skyfire::Spells::CalculateMaxTicks
uint32 CalculateMaxTicks(int32 duration, SpellTickEffectInfo const *effects, uint32 effectCount)
Definition
SpellCalculations.cpp:63
Skyfire::Spells::SpellPowerCostCalculationStatus
SpellPowerCostCalculationStatus
Definition
SpellCalculations.h:35
Skyfire::Spells::SPELL_POWER_COST_OK
@ SPELL_POWER_COST_OK
Definition
SpellCalculations.h:36
Skyfire::Spells::SPELL_POWER_COST_UNSUPPORTED_POWER_TYPE
@ SPELL_POWER_COST_UNSUPPORTED_POWER_TYPE
Definition
SpellCalculations.h:37
Skyfire::Spells::SPELL_POWER_COST_UNKNOWN_POWER_TYPE
@ SPELL_POWER_COST_UNKNOWN_POWER_TYPE
Definition
SpellCalculations.h:38
Skyfire::Spells::CalculateBaseCastTime
int32 CalculateBaseCastTime(uint8 level, int32 castTimeMin, int32 castTimeMax, int32 castTimeMaxLevel, int32 fallbackCastTime)
Definition
SpellCalculations.cpp:15
Skyfire::Spells::CalculateRecoveryTime
uint32 CalculateRecoveryTime(uint32 recoveryTime, uint32 categoryRecoveryTime)
Definition
SpellCalculations.cpp:112
Skyfire::Spells::CalculateDuration
int32 CalculateDuration(bool hasDurationEntry, int32 duration)
Definition
SpellCalculations.cpp:42
Skyfire::Spells::CalculateSpellPowerCosts
SpellPowerCostCalculationResult CalculateSpellPowerCosts(SpellPowerCostCalculationData const &data)
Definition
SpellCalculations.cpp:117
Skyfire::Spells::SelectSpellRange
float SelectSpellRange(bool hasRangeEntry, float friendRange, float hostileRange, bool positive)
Definition
SpellCalculations.cpp:104
Skyfire::Spells::CalculateRadius
float CalculateRadius(SpellRadiusCalculationData const &data)
Definition
SpellCalculations.cpp:88
Skyfire::Spells::FinalizeCastTime
uint32 FinalizeCastTime(int32 castTime, bool addRangedAmmoDelay)
Definition
SpellCalculations.cpp:26
Skyfire::Spells::CalculateEffectBaseValue
int32 CalculateEffectBaseValue(int32 value, int32 dieSides)
Definition
SpellCalculations.cpp:83
Skyfire::Spells::NormalizeDurationValue
int32 NormalizeDurationValue(int32 duration)
Definition
SpellCalculations.cpp:34
Skyfire
Definition
AuthPatchTransfer.h:12
Skyfire::Spells::SpellPowerCostCalculationData
Definition
SpellCalculations.h:42
Skyfire::Spells::SpellPowerCostCalculationData::BasePeriodicPowerCost
uint32 BasePeriodicPowerCost
Definition
SpellCalculations.h:44
Skyfire::Spells::SpellPowerCostCalculationData::ChannelCostPercentage
float ChannelCostPercentage
Definition
SpellCalculations.h:46
Skyfire::Spells::SpellPowerCostCalculationData::BasePowerCost
uint32 BasePowerCost
Definition
SpellCalculations.h:43
Skyfire::Spells::SpellPowerCostCalculationData::PowerType
int32 PowerType
Definition
SpellCalculations.h:47
Skyfire::Spells::SpellPowerCostCalculationData::PowerCostPercentage
float PowerCostPercentage
Definition
SpellCalculations.h:45
Skyfire::Spells::SpellPowerCostCalculationData::MaxPower
uint32 MaxPower
Definition
SpellCalculations.h:49
Skyfire::Spells::SpellPowerCostCalculationData::CreatedHealth
uint32 CreatedHealth
Definition
SpellCalculations.h:48
Skyfire::Spells::SpellPowerCostCalculationResult
Definition
SpellCalculations.h:53
Skyfire::Spells::SpellPowerCostCalculationResult::PowerCost
uint32 PowerCost
Definition
SpellCalculations.h:54
Skyfire::Spells::SpellPowerCostCalculationResult::Status
SpellPowerCostCalculationStatus Status
Definition
SpellCalculations.h:56
Skyfire::Spells::SpellPowerCostCalculationResult::PeriodicPowerCost
uint32 PeriodicPowerCost
Definition
SpellCalculations.h:55
Skyfire::Spells::SpellRadiusCalculationData
Definition
SpellCalculations.h:23
Skyfire::Spells::SpellRadiusCalculationData::RadiusMax
float RadiusMax
Definition
SpellCalculations.h:27
Skyfire::Spells::SpellRadiusCalculationData::MaxRadiusMin
float MaxRadiusMin
Definition
SpellCalculations.h:29
Skyfire::Spells::SpellRadiusCalculationData::HasMaxRadius
bool HasMaxRadius
Definition
SpellCalculations.h:28
Skyfire::Spells::SpellRadiusCalculationData::RadiusMin
float RadiusMin
Definition
SpellCalculations.h:25
Skyfire::Spells::SpellRadiusCalculationData::HasCaster
bool HasCaster
Definition
SpellCalculations.h:30
Skyfire::Spells::SpellRadiusCalculationData::RadiusPerLevel
float RadiusPerLevel
Definition
SpellCalculations.h:26
Skyfire::Spells::SpellRadiusCalculationData::CasterLevel
uint8 CasterLevel
Definition
SpellCalculations.h:31
Skyfire::Spells::SpellRadiusCalculationData::HasRadius
bool HasRadius
Definition
SpellCalculations.h:24
Skyfire::Spells::SpellTickEffectInfo
Definition
SpellCalculations.h:16
Skyfire::Spells::SpellTickEffectInfo::Effect
uint32 Effect
Definition
SpellCalculations.h:17
Skyfire::Spells::SpellTickEffectInfo::ApplyAuraTickCount
uint32 ApplyAuraTickCount
Definition
SpellCalculations.h:19
Skyfire::Spells::SpellTickEffectInfo::ApplyAuraName
uint32 ApplyAuraName
Definition
SpellCalculations.h:18
src
server
game
Spells
SpellCalculations.h
Generated on
for Project SkyFire Core by
1.17.0