Implementation of QAston proc system

This commit is contained in:
hondacrx
2017-08-14 08:12:31 -04:00
parent df8f6133b3
commit 9a039f35a2
23 changed files with 1083 additions and 1730 deletions
+1 -1
View File
@@ -604,7 +604,7 @@ namespace Framework.Constants
CommandReloadSpellLootTemplate = 695,
CommandReloadSpellLinkedSpell = 696,
CommandReloadSpellPetAuras = 697,
CommandReloadSpellProcEvent = 698,
// 698 - reuse
CommandReloadSpellProc = 699,
CommandReloadSpellScripts = 700,
CommandReloadSpellTargetPosition = 701,
+1
View File
@@ -43,6 +43,7 @@ namespace Framework.Constants
AfterDispel,
// Spell Proc Hooks
CheckProc,
CheckEffectProc,
PrepareProc,
Proc,
EffectProc,
+5 -5
View File
@@ -244,9 +244,9 @@ namespace Framework.Constants
ModRatingFromStat = 220,
ModDetaunt = 221,
Unk222 = 222,
RaidProcFromCharge = 223,
Unk223 = 223,
Unk224 = 224,
RaidProcFromChargeWithValue = 225,
ModVisibilityRange = 225,
PeriodicDummy = 226,
PeriodicTriggerSpellWithValue = 227,
DetectStealth = 228,
@@ -349,7 +349,7 @@ namespace Framework.Constants
Unk325 = 325, // Not Used In 4.3.4
PhaseGroup = 326, // Phase Related
Unk327 = 327, // Not Used In 4.3.4
ProcOnPowerAmount = 328,
TriggerSpellOnPowerPct = 328,
ModPowerGainPct = 329, // Nyi
CastWhileWalking = 330,
ForceWeather = 331,
@@ -417,7 +417,7 @@ namespace Framework.Constants
Unk393 = 393,
ShowConfirmationPrompt = 394,
AreaTrigger = 395, // NYI
ProcOnPowerAmount2 = 396,
TriggerSpellOnPowerAmount = 396,
Unk397 = 397,
Unk398 = 398,
Unk399 = 399,
@@ -489,7 +489,7 @@ namespace Framework.Constants
ModBonusArmor = 465, // NYI
ModBonusArmorPct = 466,
ModStatBonusPct = 467,
TriggerSpellOnHealthBelowPct = 468,
TriggerSpellOnHealthPct = 468,
ShowConfirmationPromptWithDifficulty = 469,
Unk470 = 470,
ModVersatility = 471, // NYI
+11 -34
View File
@@ -341,7 +341,9 @@ namespace Framework.Constants
Effect5 = 33,
SpellCost2 = 34, // Used when SpellPowerEntry.PowerIndex == 1
JumpDistance = 35,
// spellmod 36
StackAmount2 = 37, // same as SPELLMOD_STACK_AMOUNT but affects tooltips
// spellmod 38
Max = 39
}
@@ -1171,7 +1173,7 @@ namespace Framework.Constants
IgnoreCasterAurastate = 0x800, //! Will Ignore Caster Aura States Including Combat Requirements And Death State
IgnoreCasterMountedOrOnVehicle = 0x2000, //! Will Ignore Mounted/On Vehicle Restrictions
IgnoreCasterAuras = 0x10000, //! Will Ignore Caster Aura Restrictions Or Requirements
DisallowProcEvents = 0x20000, //! Disallows Proc Events From Triggered Spell (Default)
DontResetPeriodicTimer = 0x20000, //! Will allow periodic aura timers to keep ticking (instead of resetting)
DontReportCastError = 0x40000, //! Will Return SpellFailedDontReport In Checkcast Functions
IgnoreEquippedItemRequirement = 0x80000,
IgnoreTargetCheck = 0x100000,
@@ -2116,39 +2118,6 @@ namespace Framework.Constants
MeleeBasedTriggerMask = (DoneMeleeAutoAttack | TakenMeleeAutoAttack | DoneSpellMeleeDmgClass | TakenSpellMeleeDmgClass |
DoneRangedAutoAttack | TakenRangedAutoAttack | DoneSpellRangedDmgClass | TakenSpellRangedDmgClass)
}
public enum ProcFlagsExLegacy
{
None = 0x0, // If none can tigger on Hit/Crit only (passive spells MUST defined by SpellFamily flag)
NormalHit = 0x01, // If set only from normal hit (only damage spells)
CriticalHit = 0x02,
Miss = 0x04,
Resist = 0x08,
Dodge = 0x10,
Parry = 0x20,
Block = 0x40,
Evade = 0x80,
Immune = 0x100,
Deflect = 0x200,
Absorb = 0x400,
Reflect = 0x800,
Interrupt = 0x1000, // Melee hit result can be Interrupt (not used)
FullBlock = 0x2000, // block al attack damage
Reserved2 = 0x4000,
NotActiveSpell = 0x8000, // Spell mustn't do damage/heal to proc
ExTriggerAlways = 0x10000, // If set trigger always no matter of hit result
ExOneTimeTrigger = 0x20000, // If set trigger always but only one time (not implemented yet)
OnlyActiveSpell = 0x40000, // Spell has to do damage/heal to proc
// Flags for internal use - do not use these in db!
InternalCantProc = 0x800000,
InternalDot = 0x1000000,
InternalHot = 0x2000000,
InternalTriggered = 0x4000000,
InternalReqFamily = 0x8000000,
AuraProcMask = (NormalHit | CriticalHit | Miss | Resist | Dodge | Parry
| Block | Evade | Immune | Deflect | Absorb | Reflect | Interrupt)
}
public enum ProcFlagsSpellPhase
{
None = 0x0,
@@ -2177,6 +2146,14 @@ namespace Framework.Constants
MaskAll = 0x0003FFF
}
public enum ProcAttributes
{
ReqExpOrHonor = 0x01, // requires proc target to give exp or honor for aura proc
TriggeredCanProc = 0x02, // aura can proc even with triggered spells
ReqPowerCost = 0x04, // requires triggering spell to have a power cost for aura proc
ReqSpellmod = 0x08 // requires triggering spell to be affected by proccing aura to drop charges
}
// Spell aura states
public enum AuraStateType
{ // (C) used in caster aura state (T) used in target aura state