Core/Spells: Removed old combo point code leftovers

Port From (https://github.com/TrinityCore/TrinityCore/commit/197d4369c894e9b088f862c7189f4fe20b4836ca)
This commit is contained in:
hondacrx
2023-09-12 18:08:48 -04:00
parent 913cfa0fbd
commit 44e79ec8ea
8 changed files with 10 additions and 101 deletions
@@ -1533,7 +1533,7 @@ namespace Framework.Constants
IgnoreCastItem = 0x08, //! Will Not Take Away Cast Item Or Update Related Achievement Criteria
IgnoreAuraScaling = 0x10, //! Will Ignore Aura Scaling
IgnoreCastInProgress = 0x20, //! Will Not Check If A Current Cast Is In Progress
IgnoreComboPoints = 0x40, //! Will Ignore Combo Point Requirement
// reuse = 0x40, //
CastDirectly = 0x80, //! In Spell.Prepare, Will Be Cast Directly Without Setting Containers For Executed Spell
IgnoreAuraInterruptFlags = 0x100, //! Will Ignore Interruptible Aura'S At Cast
IgnoreSetFacing = 0x200, //! Will Not Adjust Facing To Target (If Any)
+2 -2
View File
@@ -518,8 +518,8 @@ namespace Game.Entities
opponent.RemoveAurasWithInterruptFlags(SpellAuraInterruptFlags2.DuelEnd);
// cleanup combo points
ClearComboPoints();
opponent.ClearComboPoints();
SetPower(PowerType.ComboPoints, 0);
opponent.SetPower(PowerType.ComboPoints, 0);
//cleanups
SetDuelArbiter(ObjectGuid.Empty);
+3 -3
View File
@@ -645,8 +645,8 @@ namespace Game.Entities
// drunken state is cleared on death
SetDrunkValue(0);
// lost combo points at any target (targeted combo points clear in Unit::setDeathState)
ClearComboPoints();
SetPower(PowerType.ComboPoints, 0);
ClearResurrectRequestData();
@@ -723,7 +723,7 @@ namespace Game.Entities
StopCastingCharm();
StopCastingBindSight();
UnsummonPetTemporaryIfAny();
ClearComboPoints();
SetPower(PowerType.ComboPoints, 0);
GetSession().DoLootReleaseAll();
m_lootRolls.Clear();
OutdoorPvPMgr.HandlePlayerLeaveZone(this, m_zoneUpdateId);
-41
View File
@@ -3343,47 +3343,6 @@ namespace Game.Entities
return nearMembers[randTarget];
}
public uint GetComboPoints() { return (uint)GetPower(PowerType.ComboPoints); }
public void AddComboPoints(sbyte count, Spell spell = null)
{
if (count == 0)
return;
sbyte comboPoints = (sbyte)(spell != null ? spell.m_comboPointGain : GetPower(PowerType.ComboPoints));
comboPoints += count;
if (comboPoints > 5)
comboPoints = 5;
else if (comboPoints < 0)
comboPoints = 0;
if (!spell)
SetPower(PowerType.ComboPoints, comboPoints);
else
spell.m_comboPointGain = comboPoints;
}
void GainSpellComboPoints(sbyte count)
{
if (count == 0)
return;
sbyte cp = (sbyte)GetPower(PowerType.ComboPoints);
cp += count;
if (cp > 5) cp = 5;
else if (cp < 0) cp = 0;
SetPower(PowerType.ComboPoints, cp);
}
public void ClearComboPoints()
{
SetPower(PowerType.ComboPoints, 0);
}
public void ClearAllReactives()
{
for (ReactiveType i = 0; i < ReactiveType.Max; ++i)
+1 -46
View File
@@ -28,7 +28,6 @@ namespace Game.Spells
m_spellInfo = info;
m_caster = (info.HasAttribute(SpellAttr6.OriginateFromController) && caster.GetCharmerOrOwner() != null ? caster.GetCharmerOrOwner() : caster);
m_spellValue = new SpellValue(m_spellInfo, caster);
m_needComboPoints = m_spellInfo.NeedsComboPoints();
// Get data for type of attack
m_attackType = info.GetAttackType();
@@ -2527,10 +2526,6 @@ namespace Game.Spells
if (m_CastItem == null)
m_powerCost = m_spellInfo.CalcPowerCost(m_caster, m_spellSchoolMask, this);
// Set combo point requirement
if (Convert.ToBoolean(_triggeredCastFlags & TriggerCastFlags.IgnoreComboPoints) || m_CastItem != null)
m_needComboPoints = false;
int param1 = 0, param2 = 0;
SpellCastResult result = CheckCast(true, ref param1, ref param2);
// target is checked in too many locations and with different results to handle each of them
@@ -3256,18 +3251,8 @@ namespace Game.Spells
{
Unit unitCaster = m_caster.ToUnit();
if (unitCaster != null)
{
// Take for real after all targets are processed
if (m_needComboPoints)
unitCaster.ClearComboPoints();
// Real add combo points from effects
if (m_comboPointGain != 0)
unitCaster.AddComboPoints(m_comboPointGain);
if (m_spellInfo.HasEffect(SpellEffectName.AddExtraAttacks))
unitCaster.SetLastExtraAttackSpell(m_spellInfo.Id);
}
// Handle procs on finish
if (!m_originalCaster)
@@ -4795,21 +4780,6 @@ namespace Game.Spells
}
}
bool reqCombat = true;
var stateAuras = unitCaster.GetAuraEffectsByType(AuraType.AbilityIgnoreAurastate);
foreach (var aura in stateAuras)
{
if (aura.IsAffectingSpell(m_spellInfo))
{
m_needComboPoints = false;
if (aura.GetMiscValue() == 1)
{
reqCombat = false;
break;
}
}
}
// caster state requirements
// not for triggered spells (needed by execute)
if (!_triggeredCastFlags.HasFlag(TriggerCastFlags.IgnoreCasterAurastate))
@@ -4830,7 +4800,7 @@ namespace Game.Spells
if (m_spellInfo.ExcludeCasterAuraType != 0 && unitCaster.HasAuraType(m_spellInfo.ExcludeCasterAuraType))
return SpellCastResult.CasterAurastate;
if (reqCombat && unitCaster.IsInCombat() && !m_spellInfo.CanBeUsedInCombat(unitCaster))
if (unitCaster.IsInCombat() && !m_spellInfo.CanBeUsedInCombat(unitCaster))
return SpellCastResult.AffectingCombat;
}
@@ -5844,15 +5814,6 @@ namespace Game.Spells
return SpellCastResult.ItemAlreadyEnchanted;
}
// check if caster has at least 1 combo point for spells that require combo points
if (m_needComboPoints)
{
Player plrCaster = m_caster.ToPlayer();
if (plrCaster != null)
if (plrCaster.GetComboPoints() == 0)
return SpellCastResult.NoComboPoints;
}
// all ok
return SpellCastResult.SpellCastOk;
}
@@ -8074,7 +8035,6 @@ namespace Game.Spells
public object m_customArg;
public SpellCastVisual m_SpellVisual;
public SpellCastTargets m_targets = new();
public sbyte m_comboPointGain;
public SpellCustomErrors m_customError;
public List<Aura> m_appliedMods = new();
@@ -8106,7 +8066,6 @@ namespace Game.Spells
// These vars are used in both delayed spell system and modified immediate spell system
bool m_referencedFromCurrentSpell;
bool m_executedCurrently;
internal bool m_needComboPoints;
uint m_applyMultiplierMask;
float[] m_damageMultipliers = new float[SpellConst.MaxEffects];
@@ -8656,10 +8615,6 @@ namespace Game.Spells
spell.m_hitMask |= hitMask;
spell.m_procSpellType |= procSpellType;
// Do not take combo points on dodge and miss
if (MissCondition != SpellMissInfo.None && spell.m_needComboPoints && spell.m_targets.GetUnitTargetGUID() == TargetGUID)
spell.m_needComboPoints = false;
// _spellHitTarget can be null if spell is missed in DoSpellHitOnUnit
if (MissCondition != SpellMissInfo.Evade && _spellHitTarget && !spell.GetCaster().IsFriendlyTo(unit) && (!spell.IsPositive() || spell.m_spellInfo.HasEffect(SpellEffectName.Dispel)))
{
+1 -6
View File
@@ -548,11 +548,6 @@ namespace Game.Spells
return IsChanneled() && !ChannelInterruptFlags.HasFlag(SpellAuraInterruptFlags.Moving | SpellAuraInterruptFlags.Turning);
}
public bool NeedsComboPoints()
{
return HasAttribute(SpellAttr1.FinishingMoveDamage | SpellAttr1.FinishingMoveDuration);
}
public bool IsNextMeleeSwingSpell()
{
return HasAttribute(SpellAttr0.OnNextSwingNoDamage | SpellAttr0.OnNextSwing);
@@ -4193,7 +4188,7 @@ namespace Game.Spells
// bonus amount from combo points
if (comboDamage != 0)
{
uint comboPoints = casterUnit.GetComboPoints();
int comboPoints = casterUnit.GetPower(PowerType.ComboPoints);
if (comboPoints != 0)
value += comboDamage * comboPoints;
}
+1 -1
View File
@@ -876,7 +876,7 @@ namespace Scripts.Spells.Druid
if (caster != null)
{
// 0.01 * $AP * cp
byte cp = (byte)caster.ToPlayer().GetComboPoints();
int cp = caster.GetPower(PowerType.ComboPoints);
// Idol of Feral Shadows. Can't be handled as SpellMod due its dependency from CPs
AuraEffect idol = caster.GetAuraEffect(SpellIds.IdolOfFeralShadows, 0);
+1 -1
View File
@@ -551,7 +551,7 @@ namespace Scripts.Spells.Rogue
0.0375f // 5 points: ${($m1 + $b1*5 + 0.0375 * $AP) * 8} damage over 16 secs
};
uint cp = caster.GetComboPoints();
int cp = caster.GetPower(PowerType.ComboPoints);
if (cp > 5)
cp = 5;