Core/Spells: Rename confusing SpellState enum values
Port From (https://github.com/TrinityCore/TrinityCore/commit/2e79d3524f12a525c337c5ce8d84b793cacd6e91)
This commit is contained in:
@@ -431,12 +431,12 @@ namespace Framework.Constants
|
||||
|
||||
public enum SpellState
|
||||
{
|
||||
None = 0,
|
||||
Null = 0,
|
||||
Preparing = 1,
|
||||
Casting = 2,
|
||||
Finished = 3,
|
||||
Idle = 4,
|
||||
Delayed = 5
|
||||
Launched = 2,
|
||||
Channeling = 3,
|
||||
Finished = 4,
|
||||
Idle = 5
|
||||
}
|
||||
|
||||
public enum SpellSchools
|
||||
|
||||
@@ -1750,13 +1750,13 @@ namespace Game.Entities
|
||||
RemoveOwnedAura(pair);
|
||||
}
|
||||
|
||||
// currently casted spells can be dependent from item
|
||||
// currently cast spells can be dependent from item
|
||||
for (CurrentSpellTypes i = 0; i < CurrentSpellTypes.Max; ++i)
|
||||
{
|
||||
Spell spell = GetCurrentSpell(i);
|
||||
if (spell != null)
|
||||
if (spell.GetState() != SpellState.Delayed && !HasItemFitToSpellRequirements(spell.m_spellInfo, pItem))
|
||||
InterruptSpell(i);
|
||||
if (!HasItemFitToSpellRequirements(spell.m_spellInfo, pItem))
|
||||
InterruptSpell(i, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -981,7 +981,7 @@ namespace Game.Entities
|
||||
}
|
||||
|
||||
return null;
|
||||
};
|
||||
}
|
||||
|
||||
SpellInfo newInfo = findMatchingAuraEffectIn(AuraType.OverrideActionbarSpells, ref triggerFlag);
|
||||
if (newInfo != null)
|
||||
@@ -1113,12 +1113,9 @@ namespace Game.Entities
|
||||
public Spell FindCurrentSpellBySpellId(uint spell_id)
|
||||
{
|
||||
foreach (var spell in m_currentSpells.Values)
|
||||
{
|
||||
if (spell == null)
|
||||
continue;
|
||||
if (spell.m_spellInfo.Id == spell_id)
|
||||
if (spell != null && spell.m_spellInfo.Id == spell_id)
|
||||
return spell;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -1936,7 +1933,7 @@ namespace Game.Entities
|
||||
|
||||
// generic spells are cast when they are not finished and not delayed
|
||||
var currentSpell = GetCurrentSpell(CurrentSpellTypes.Generic);
|
||||
if (currentSpell != null && (currentSpell.GetState() != SpellState.Finished) && (withDelayed || currentSpell.GetState() != SpellState.Delayed))
|
||||
if (currentSpell != null && (currentSpell.GetState() != SpellState.Finished) && (withDelayed || currentSpell.GetState() != SpellState.Launched))
|
||||
{
|
||||
if (!skipInstant || currentSpell.GetCastTime() != 0)
|
||||
{
|
||||
@@ -2630,8 +2627,8 @@ namespace Game.Entities
|
||||
Log.outDebug(LogFilter.Unit, "Interrupt spell for unit {0}", GetEntry());
|
||||
Spell spell = m_currentSpells.LookupByKey(spellType);
|
||||
if (spell != null
|
||||
&& (withDelayed || spell.GetState() != SpellState.Delayed)
|
||||
&& (withInstant || spell.GetCastTime() > 0 || spell.GetState() == SpellState.Casting))
|
||||
&& (withDelayed || spell.GetState() != SpellState.Launched)
|
||||
&& (withInstant || spell.GetCastTime() > 0 || spell.GetState() == SpellState.Channeling))
|
||||
{
|
||||
// for example, do not let self-stun aura interrupt itself
|
||||
if (!spell.IsInterruptable())
|
||||
@@ -2667,7 +2664,7 @@ namespace Game.Entities
|
||||
Spell spell = GetCurrentSpell(CurrentSpellTypes.Channeled);
|
||||
if (spell != null)
|
||||
{
|
||||
if (spell.GetState() == SpellState.Casting)
|
||||
if (spell.GetState() == SpellState.Channeling)
|
||||
{
|
||||
m_interruptMask |= spell.m_spellInfo.ChannelInterruptFlags;
|
||||
m_interruptMask2 |= spell.m_spellInfo.ChannelInterruptFlags2;
|
||||
@@ -3117,7 +3114,7 @@ namespace Game.Entities
|
||||
Spell spell = GetCurrentSpell(CurrentSpellTypes.Channeled);
|
||||
if (spell != null)
|
||||
{
|
||||
if (spell.GetState() == SpellState.Casting
|
||||
if (spell.GetState() == SpellState.Channeling
|
||||
&& spell.GetSpellInfo().HasChannelInterruptFlag(flag)
|
||||
&& (source == null || spell.GetSpellInfo().Id != source.Id)
|
||||
&& !IsInterruptFlagIgnoredForSpell(flag, this, spell.GetSpellInfo(), true, source))
|
||||
@@ -3150,7 +3147,7 @@ namespace Game.Entities
|
||||
Spell spell = GetCurrentSpell(CurrentSpellTypes.Channeled);
|
||||
if (spell != null)
|
||||
{
|
||||
if (spell.GetState() == SpellState.Casting
|
||||
if (spell.GetState() == SpellState.Channeling
|
||||
&& spell.GetSpellInfo().HasChannelInterruptFlag(flag)
|
||||
&& (source == null || spell.GetSpellInfo().Id != source.Id)
|
||||
&& !IsInterruptFlagIgnoredForSpell(flag, this, spell.GetSpellInfo(), true, source))
|
||||
|
||||
@@ -2939,7 +2939,7 @@ namespace Game.Entities
|
||||
{
|
||||
Spell spell1 = victim.GetCurrentSpell(CurrentSpellTypes.Channeled);
|
||||
if (spell1 != null)
|
||||
if (spell1.GetState() == SpellState.Casting && spell1.m_spellInfo.HasChannelInterruptFlag(SpellAuraInterruptFlags.DamageChannelDuration))
|
||||
if (spell1.GetState() == SpellState.Channeling && spell1.m_spellInfo.HasChannelInterruptFlag(SpellAuraInterruptFlags.DamageChannelDuration))
|
||||
spell1.DelayedChannel();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1917,7 +1917,7 @@ namespace Game.Spells
|
||||
target.SetSilencedSchoolMask((SpellSchoolMask)GetMiscValue());
|
||||
|
||||
// call functions which may have additional effects after changing state of unit
|
||||
// Stop cast only spells vs PreventionType & SPELL_PREVENTION_TYPE_SILENCE
|
||||
// Stop cast only spells vs PreventionType & SPELL_PREVENTION_TYPE_NO_ACTIONS
|
||||
for (var i = CurrentSpellTypes.Melee; i < CurrentSpellTypes.Max; ++i)
|
||||
{
|
||||
Spell spell = target.GetCurrentSpell(i);
|
||||
|
||||
+11
-13
@@ -2748,13 +2748,12 @@ namespace Game.Spells
|
||||
{
|
||||
case SpellState.Preparing:
|
||||
CancelGlobalCooldown();
|
||||
goto case SpellState.Delayed;
|
||||
case SpellState.Delayed:
|
||||
goto case SpellState.Launched;
|
||||
case SpellState.Launched:
|
||||
SendInterrupted(0);
|
||||
SendCastResult(SpellCastResult.Interrupted);
|
||||
break;
|
||||
|
||||
case SpellState.Casting:
|
||||
case SpellState.Channeling:
|
||||
foreach (var ihit in m_UniqueTargetInfo)
|
||||
{
|
||||
if (ihit.MissCondition == SpellMissInfo.None)
|
||||
@@ -2771,7 +2770,6 @@ namespace Game.Spells
|
||||
|
||||
m_appliedMods.Clear();
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -3054,7 +3052,7 @@ namespace Game.Spells
|
||||
|
||||
// Okay, maps created, now prepare flags
|
||||
m_immediateHandled = false;
|
||||
m_spellState = SpellState.Delayed;
|
||||
m_spellState = SpellState.Launched;
|
||||
SetDelayStart(0);
|
||||
|
||||
unitCaster = m_caster.ToUnit();
|
||||
@@ -3222,7 +3220,7 @@ namespace Game.Spells
|
||||
|
||||
if (duration != 0)
|
||||
{
|
||||
m_spellState = SpellState.Casting;
|
||||
m_spellState = SpellState.Channeling;
|
||||
// GameObjects shouldn't cast channeled spells
|
||||
m_caster.ToUnit()?.AddInterruptMask(m_spellInfo.ChannelInterruptFlags, m_spellInfo.ChannelInterruptFlags2);
|
||||
}
|
||||
@@ -3254,7 +3252,7 @@ namespace Game.Spells
|
||||
// Remove used for cast item if need (it can be already NULL after TakeReagents call
|
||||
TakeCastItem();
|
||||
|
||||
if (m_spellState != SpellState.Casting)
|
||||
if (m_spellState != SpellState.Channeling)
|
||||
Finish(); // successfully finish spell cast (not last in case autorepeat or channel spell)
|
||||
}
|
||||
|
||||
@@ -3472,7 +3470,7 @@ namespace Game.Spells
|
||||
Cast(m_casttime == 0);
|
||||
break;
|
||||
}
|
||||
case SpellState.Casting:
|
||||
case SpellState.Channeling:
|
||||
{
|
||||
if (m_timer != 0)
|
||||
{
|
||||
@@ -7287,7 +7285,7 @@ namespace Game.Spells
|
||||
if (unitCaster == null)
|
||||
return;
|
||||
|
||||
if (m_spellState != SpellState.Casting)
|
||||
if (m_spellState != SpellState.Channeling)
|
||||
return;
|
||||
|
||||
if (IsDelayableNoMore()) // Spells may only be delayed twice
|
||||
@@ -8415,7 +8413,7 @@ namespace Game.Spells
|
||||
if (m_casttime > 0 && m_spellInfo.InterruptFlags.HasFlag(SpellInterruptFlags.Movement))
|
||||
return SpellCastResult.Moving;
|
||||
}
|
||||
else if (GetState() == SpellState.Casting && !m_spellInfo.IsMoveAllowedChannel())
|
||||
else if (GetState() == SpellState.Channeling && !m_spellInfo.IsMoveAllowedChannel())
|
||||
return SpellCastResult.Moving;
|
||||
}
|
||||
}
|
||||
@@ -8909,7 +8907,7 @@ namespace Game.Spells
|
||||
if (unit.IsAlive() != IsAlive && !spell.m_spellInfo.HasAttribute(SpellAttr9.ForceCorpseTarget))
|
||||
return;
|
||||
|
||||
if (!spell.m_spellInfo.HasAttribute(SpellAttr8.IgnoreSanctuary) && spell.GetState() == SpellState.Delayed && !spell.IsPositive() && (GameTime.GetGameTimeMS() - TimeDelay) <= unit.LastSanctuaryTime)
|
||||
if (!spell.m_spellInfo.HasAttribute(SpellAttr8.IgnoreSanctuary) && spell.GetState() == SpellState.Launched && !spell.IsPositive() && (GameTime.GetGameTimeMS() - TimeDelay) <= unit.LastSanctuaryTime)
|
||||
return; // No missinfo in that case
|
||||
|
||||
if (_spellHitTarget != null)
|
||||
@@ -9652,7 +9650,7 @@ namespace Game.Spells
|
||||
// event will be re-added automatically at the end of routine)
|
||||
break;
|
||||
}
|
||||
case SpellState.Delayed:
|
||||
case SpellState.Launched:
|
||||
{
|
||||
// first, check, if we have just started
|
||||
if (m_Spell.GetDelayStart() != 0)
|
||||
|
||||
@@ -2576,7 +2576,7 @@ namespace Game.Spells
|
||||
{
|
||||
SpellInfo curSpellInfo = spell.m_spellInfo;
|
||||
// check if we can interrupt spell
|
||||
if ((spell.GetState() == SpellState.Casting
|
||||
if ((spell.GetState() == SpellState.Channeling
|
||||
|| (spell.GetState() == SpellState.Preparing && spell.GetCastTime() > 0.0f))
|
||||
&& curSpellInfo.CanBeInterrupted(m_caster, unitTarget))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user