From 1df708e085f1933b25cfe50eebc402574c3aa11e Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Fri, 17 Nov 2023 18:30:37 +0100 Subject: Core/Units: downgraded power types enum and disabled Death Knight rune regeneration mechanics for the time being --- src/server/game/Entities/Object/Object.cpp | 4 +- src/server/game/Entities/Player/Player.cpp | 62 ++++++++++++---------- src/server/game/Entities/Unit/StatSystem.cpp | 10 +--- src/server/game/Entities/Unit/Unit.cpp | 20 +------ src/server/game/Entities/Unit/Unit.h | 37 ++++++------- src/server/game/Miscellaneous/SharedDefines.h | 24 ++------- .../game/Miscellaneous/enuminfo_SharedDefines.cpp | 62 +++------------------- src/server/game/Spells/Auras/SpellAuraEffects.cpp | 6 ++- src/server/game/Spells/Spell.cpp | 19 +++++-- src/server/game/Spells/SpellInfo.cpp | 3 -- src/server/scripts/Spells/spell_dk.cpp | 2 + src/server/scripts/Spells/spell_mage.cpp | 11 ---- src/server/scripts/Spells/spell_paladin.cpp | 26 --------- src/server/scripts/Spells/spell_shaman.cpp | 9 ---- 14 files changed, 91 insertions(+), 204 deletions(-) (limited to 'src') diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp index 1ecad90adbf..973e51d0f61 100644 --- a/src/server/game/Entities/Object/Object.cpp +++ b/src/server/game/Entities/Object/Object.cpp @@ -725,7 +725,7 @@ void Object::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, Playe Player const* player = ToPlayer(); bool HasSceneInstanceIDs = !player->GetSceneMgr().GetSceneTemplateByInstanceMap().empty(); - bool HasRuneState = ToUnit()->GetPowerIndex(POWER_RUNES) != MAX_POWERS; + bool HasRuneState = false; // ToUnit()->GetPowerIndex(POWER_RUNES) != MAX_POWERS; bool HasActionButtons = true; data->WriteBit(HasSceneInstanceIDs); @@ -740,6 +740,7 @@ void Object::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, Playe } if (HasRuneState) { + /* float baseCd = float(player->GetRuneBaseCooldown()); uint32 maxRunes = uint32(player->GetMaxPower(POWER_RUNES)); @@ -748,6 +749,7 @@ void Object::BuildMovementUpdate(ByteBuffer* data, CreateObjectBits flags, Playe *data << uint32(maxRunes); for (uint32 i = 0; i < maxRunes; ++i) *data << uint8((baseCd - float(player->GetRuneCooldown(i))) / baseCd * 255); + */ } if (HasActionButtons) { diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 75a709c6824..53267ae1a55 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -1684,10 +1684,10 @@ void Player::RegenerateAll() m_foodEmoteTimerCount += m_regenTimer; for (Powers power = POWER_MANA; power < MAX_POWERS; power = Powers(power + 1)) - if (power != POWER_RUNES) - Regenerate(power); + Regenerate(power); // Runes act as cooldowns, and they don't need to send any data + /* if (GetClass() == CLASS_DEATH_KNIGHT) { uint32 regeneratedRunes = 0; @@ -1707,6 +1707,7 @@ void Player::RegenerateAll() ++regeneratedRunes; } } + */ if (m_regenTimerCount >= 2000) { @@ -1784,28 +1785,25 @@ void Player::Regenerate(Powers power) RATE_POWER_RAGE_LOSS, RATE_POWER_FOCUS, RATE_POWER_ENERGY, - RATE_POWER_COMBO_POINTS_LOSS, - MAX_RATES, // runes + MAX_RATES, // happiness RATE_POWER_RUNIC_POWER_LOSS, - RATE_POWER_SOUL_SHARDS, - RATE_POWER_LUNAR_POWER, - RATE_POWER_HOLY_POWER, - MAX_RATES, // alternate - RATE_POWER_MAELSTROM, - RATE_POWER_CHI, - RATE_POWER_INSANITY, - MAX_RATES, // burning embers, unused - MAX_RATES, // demonic fury, unused - RATE_POWER_ARCANE_CHARGES, - RATE_POWER_FURY, - RATE_POWER_PAIN, - RATE_POWER_ESSENCE, - MAX_RATES, // runes + MAX_RATES, // unused + MAX_RATES, // unused + MAX_RATES, // unused + MAX_RATES, // unused + MAX_RATES, // unused + MAX_RATES, // unused + MAX_RATES, // unused + MAX_RATES, // unused + RATE_POWER_COMBO_POINTS_LOSS, + MAX_RATES, // unused + MAX_RATES, // unused + MAX_RATES, // unused + MAX_RATES, // unused + MAX_RATES, // unused MAX_RATES, // runes MAX_RATES, // runes - MAX_RATES, // alternate - MAX_RATES, // alternate - MAX_RATES, // alternate + MAX_RATES // runes }; if (RatesForPower[power] != MAX_RATES) @@ -1976,9 +1974,6 @@ void Player::ResetAllPowers() case POWER_RUNIC_POWER: SetPower(POWER_RUNIC_POWER, 0); break; - case POWER_LUNAR_POWER: - SetPower(POWER_LUNAR_POWER, 0); - break; default: break; } @@ -4493,7 +4488,6 @@ void Player::ResurrectPlayer(float restore_percent, bool applySickness) SetPower(POWER_RAGE, 0); SetPower(POWER_ENERGY, GetMaxPower(POWER_ENERGY) * restore_percent); SetPower(POWER_FOCUS, GetMaxPower(POWER_FOCUS) * restore_percent); - SetPower(POWER_LUNAR_POWER, 0); } // trigger update zone for alive state zone updates @@ -17828,8 +17822,8 @@ bool Player::LoadFromDB(ObjectGuid guid, CharacterDatabaseQueryHolder const& hol for (; loadedPowers < MAX_POWERS_PER_CLASS; ++loadedPowers) SetUpdateFieldValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::Power, loadedPowers), 0); - SetPower(POWER_LUNAR_POWER, 0); // Init rune recharge + /* if (GetPowerIndex(POWER_RUNES) != MAX_POWERS) { int32 runes = GetPower(POWER_RUNES); @@ -17841,6 +17835,7 @@ bool Player::LoadFromDB(ObjectGuid guid, CharacterDatabaseQueryHolder const& hol ++runes; } } + */ TC_LOG_DEBUG("entities.player.loading", "Player::LoadFromDB: The value of player '{}' after load item and aura is: ", m_name); outDebugValues(); @@ -25019,7 +25014,6 @@ void Player::ResurrectUsingRequestDataImpl() SetPower(POWER_RAGE, 0); SetFullPower(POWER_ENERGY); SetFullPower(POWER_FOCUS); - SetPower(POWER_LUNAR_POWER, 0); if (uint32 aura = resurrectAura) CastSpell(this, aura, CastSpellExtraArgs(TRIGGERED_FULL_MASK) @@ -25602,13 +25596,16 @@ void Player::SetTitle(CharTitlesEntry const* title, bool lost) uint8 Player::GetRunesState() const { - return uint8(m_runes->RuneState & ((1 << GetMaxPower(POWER_RUNES)) - 1)); + return 0; + + //return uint8(m_runes->RuneState & ((1 << GetMaxPower(POWER_RUNES)) - 1)); } uint32 Player::GetRuneBaseCooldown() const { float cooldown = RUNE_BASE_COOLDOWN; + /* AuraEffectList const& regenAura = GetAuraEffectsByType(SPELL_AURA_MOD_POWER_REGEN_PERCENT); for (AuraEffectList::const_iterator i = regenAura.begin();i != regenAura.end(); ++i) if ((*i)->GetMiscValue() == POWER_RUNES) @@ -25623,6 +25620,7 @@ uint32 Player::GetRuneBaseCooldown() const hastePct += GetTotalAuraModifier(SPELL_AURA_MOD_MELEE_HASTE_3); cooldown *= 1.0f - (hastePct / 100.0f); + */ return cooldown; } @@ -25631,9 +25629,11 @@ void Player::SetRuneCooldown(uint8 index, uint32 cooldown) { m_runes->Cooldown[index] = cooldown; m_runes->SetRuneState(index, (cooldown == 0) ? true : false); + /* int32 activeRunes = std::count(std::begin(m_runes->Cooldown), &m_runes->Cooldown[std::min(GetMaxPower(POWER_RUNES), MAX_RUNES)], 0u); if (activeRunes != GetPower(POWER_RUNES)) SetPower(POWER_RUNES, activeRunes); + */ } void Runes::SetRuneState(uint8 index, bool set /*= true*/) @@ -25655,6 +25655,7 @@ void Runes::SetRuneState(uint8 index, bool set /*= true*/) void Player::ResyncRunes() const { + /* uint32 maxRunes = uint32(GetMaxPower(POWER_RUNES)); WorldPackets::Spells::ResyncRunes data(maxRunes); @@ -25666,6 +25667,7 @@ void Player::ResyncRunes() const data.Runes.Cooldowns.push_back(uint8((baseCd - float(GetRuneCooldown(i))) / baseCd * 255)); SendDirectMessage(data.Write()); + */ } void Player::InitRunes() @@ -25673,6 +25675,9 @@ void Player::InitRunes() if (GetClass() != CLASS_DEATH_KNIGHT) return; + return; + + /* uint32 runeIndex = GetPowerIndex(POWER_RUNES); if (runeIndex == MAX_POWERS) return; @@ -25685,6 +25690,7 @@ void Player::InitRunes() SetUpdateFieldValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::PowerRegenFlatModifier, runeIndex), 0.0f); SetUpdateFieldValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::PowerRegenInterruptedFlatModifier, runeIndex), 0.0f); + */ } void Player::AutoStoreLoot(uint8 bag, uint8 slot, uint32 loot_id, LootStore const& store, ItemContext context, bool broadcast, bool createdByPlayer) diff --git a/src/server/game/Entities/Unit/StatSystem.cpp b/src/server/game/Entities/Unit/StatSystem.cpp index 653bb91da30..2950c70c158 100644 --- a/src/server/game/Entities/Unit/StatSystem.cpp +++ b/src/server/game/Entities/Unit/StatSystem.cpp @@ -821,6 +821,7 @@ void Player::UpdateAllRunesRegen() if (GetClass() != CLASS_DEATH_KNIGHT) return; + /* uint32 runeIndex = GetPowerIndex(POWER_RUNES); if (runeIndex == MAX_POWERS) return; @@ -830,6 +831,7 @@ void Player::UpdateAllRunesRegen() uint32 cooldown = GetRuneBaseCooldown(); SetUpdateFieldValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::PowerRegenFlatModifier, runeIndex), float(1 * IN_MILLISECONDS) / float(cooldown) - runeEntry->RegenPeace); SetUpdateFieldValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::PowerRegenInterruptedFlatModifier, runeIndex), float(1 * IN_MILLISECONDS) / float(cooldown) - runeEntry->RegenCombat); + */ } void Player::_ApplyAllStatBonuses() @@ -911,14 +913,6 @@ uint32 Creature::GetPowerIndex(Powers power) const { case POWER_COMBO_POINTS: return 2; - case POWER_ALTERNATE_POWER: - return 1; - case POWER_ALTERNATE_QUEST: - return 3; - case POWER_ALTERNATE_ENCOUNTER: - return 4; - case POWER_ALTERNATE_MOUNT: - return 5; default: break; } diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 9739799a52f..6a82f474d95 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -8899,27 +8899,11 @@ void Unit::UpdateUnitMod(UnitMods unitMod) case UNIT_MOD_FOCUS: case UNIT_MOD_ENERGY: case UNIT_MOD_COMBO_POINTS: - case UNIT_MOD_RUNES: + case UNIT_MOD_HAPPINESS: case UNIT_MOD_RUNIC_POWER: - case UNIT_MOD_SOUL_SHARDS: - case UNIT_MOD_LUNAR_POWER: - case UNIT_MOD_HOLY_POWER: - case UNIT_MOD_ALTERNATE: - case UNIT_MOD_MAELSTROM: - case UNIT_MOD_CHI: - case UNIT_MOD_INSANITY: - case UNIT_MOD_BURNING_EMBERS: - case UNIT_MOD_DEMONIC_FURY: - case UNIT_MOD_ARCANE_CHARGES: - case UNIT_MOD_FURY: - case UNIT_MOD_PAIN: - case UNIT_MOD_ESSENCE: case UNIT_MOD_RUNE_BLOOD: case UNIT_MOD_RUNE_FROST: - case UNIT_MOD_RUNE_UNHOLY: - case UNIT_MOD_ALTERNATE_QUEST: - case UNIT_MOD_ALTERNATE_ENCOUNTER: - case UNIT_MOD_ALTERNATE_MOUNT: UpdateMaxPower(Powers(unitMod - UNIT_MOD_POWER_START)); break; + case UNIT_MOD_RUNE_UNHOLY: UpdateMaxPower(Powers(unitMod - UNIT_MOD_POWER_START)); break; case UNIT_MOD_RESISTANCE_HOLY: case UNIT_MOD_RESISTANCE_FIRE: diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index dc2fe68620b..4da6b7e7dbe 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -177,28 +177,25 @@ enum UnitMods UNIT_MOD_RAGE, UNIT_MOD_FOCUS, UNIT_MOD_ENERGY, - UNIT_MOD_COMBO_POINTS, - UNIT_MOD_RUNES, + UNIT_MOD_HAPPINESS, UNIT_MOD_RUNIC_POWER, - UNIT_MOD_SOUL_SHARDS, - UNIT_MOD_LUNAR_POWER, - UNIT_MOD_HOLY_POWER, - UNIT_MOD_ALTERNATE, - UNIT_MOD_MAELSTROM, - UNIT_MOD_CHI, - UNIT_MOD_INSANITY, - UNIT_MOD_BURNING_EMBERS, - UNIT_MOD_DEMONIC_FURY, - UNIT_MOD_ARCANE_CHARGES, - UNIT_MOD_FURY, - UNIT_MOD_PAIN, - UNIT_MOD_ESSENCE, + UNIT_MOD_POWER_UNUSED_6, + UNIT_MOD_POWER_UNUSED_7, + UNIT_MOD_POWER_UNUSED_8, + UNIT_MOD_POWER_UNUSED_9, + UNIT_MOD_POWER_UNUSED_10, + UNIT_MOD_POWER_UNUSED_11, + UNIT_MOD_POWER_UNUSED_12, + UNIT_MOD_POWER_UNUSED_13, + UNIT_MOD_COMBO_POINTS, + UNIT_MOD_POWER_UNUSED_15, + UNIT_MOD_POWER_UNUSED_16, + UNIT_MOD_POWER_UNUSED_17, + UNIT_MOD_POWER_UNUSED_18, + UNIT_MOD_POWER_UNUSED_19, UNIT_MOD_RUNE_BLOOD, UNIT_MOD_RUNE_FROST, UNIT_MOD_RUNE_UNHOLY, - UNIT_MOD_ALTERNATE_QUEST, - UNIT_MOD_ALTERNATE_ENCOUNTER, - UNIT_MOD_ALTERNATE_MOUNT, UNIT_MOD_ARMOR, // UNIT_MOD_ARMOR..UNIT_MOD_RESISTANCE_ARCANE must be in existed order, it's accessed by index values of SpellSchools enum. UNIT_MOD_RESISTANCE_HOLY, UNIT_MOD_RESISTANCE_FIRE, @@ -218,7 +215,7 @@ enum UnitMods UNIT_MOD_RESISTANCE_START = UNIT_MOD_ARMOR, UNIT_MOD_RESISTANCE_END = UNIT_MOD_RESISTANCE_ARCANE + 1, UNIT_MOD_POWER_START = UNIT_MOD_MANA, - UNIT_MOD_POWER_END = UNIT_MOD_ALTERNATE_MOUNT + 1 + UNIT_MOD_POWER_END = UNIT_MOD_RUNE_UNHOLY + 1 }; static_assert(UNIT_MOD_POWER_END - UNIT_MOD_POWER_START == MAX_POWERS, "UnitMods powers section does not match Powers enum!"); @@ -910,7 +907,7 @@ class TC_GAME_API Unit : public WorldObject Powers CalculateDisplayPowerType() const; void UpdateDisplayPower(); int32 GetPower(Powers power) const; - int32 GetMinPower(Powers power) const { return power == POWER_LUNAR_POWER ? -100 : 0; } + int32 GetMinPower(Powers /*power*/) const { return 0; } int32 GetMaxPower(Powers power) const; float GetPowerPct(Powers power) const { return GetMaxPower(power) ? 100.f * GetPower(power) / GetMaxPower(power) : 0.0f; } int32 CountPctFromMaxPower(Powers power, int32 pct) const { return CalculatePct(GetMaxPower(power), pct); } diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h index f48545e910f..74c4f5f526c 100644 --- a/src/server/game/Miscellaneous/SharedDefines.h +++ b/src/server/game/Miscellaneous/SharedDefines.h @@ -289,29 +289,13 @@ enum Powers : int8 POWER_RAGE = 1, // TITLE Rage POWER_FOCUS = 2, // TITLE Focus POWER_ENERGY = 3, // TITLE Energy - POWER_COMBO_POINTS = 4, // TITLE Combo Points - POWER_RUNES = 5, // TITLE Runes - POWER_RUNIC_POWER = 6, // TITLE Runic Power - POWER_SOUL_SHARDS = 7, // TITLE Soul Shards - POWER_LUNAR_POWER = 8, // TITLE Lunar Power - POWER_HOLY_POWER = 9, // TITLE Holy Power - POWER_ALTERNATE_POWER = 10, // TITLE Alternate - POWER_MAELSTROM = 11, // TITLE Maelstrom - POWER_CHI = 12, // TITLE Chi - POWER_INSANITY = 13, // TITLE Insanity - POWER_BURNING_EMBERS = 14, // TITLE Burning Embers (Obsolete) - POWER_DEMONIC_FURY = 15, // TITLE Demonic Fury (Obsolete) - POWER_ARCANE_CHARGES = 16, // TITLE Arcane Charges - POWER_FURY = 17, // TITLE Fury - POWER_PAIN = 18, // TITLE Pain - POWER_ESSENCE = 19, // TITLE Essence + POWER_HAPPINESS = 4, // TITLE Happiness + POWER_RUNIC_POWER = 5, // TITLE Runic Power + POWER_COMBO_POINTS = 14, // TITLE Combo Points POWER_RUNE_BLOOD = 20, // TITLE Blood Runes POWER_RUNE_FROST = 21, // TITLE Frost Runes POWER_RUNE_UNHOLY = 22, // TITLE Unholy Runes - POWER_ALTERNATE_QUEST = 23, // TITLE Alternate (Quest) - POWER_ALTERNATE_ENCOUNTER = 24, // TITLE Alternate (Encounter) - POWER_ALTERNATE_MOUNT = 25, // TITLE Alternate (Mount) - MAX_POWERS = 26, // SKIP + MAX_POWERS = 23, // SKIP POWER_ALL = 127 // SKIP }; diff --git a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp index 78b6cb9d68d..bb1a8d8068e 100644 --- a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp +++ b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp @@ -112,27 +112,10 @@ TC_API_EXPORT EnumText EnumUtils::ToString(Powers value) case POWER_FOCUS: return { "POWER_FOCUS", "Focus", "" }; case POWER_ENERGY: return { "POWER_ENERGY", "Energy", "" }; case POWER_COMBO_POINTS: return { "POWER_COMBO_POINTS", "Combo Points", "" }; - case POWER_RUNES: return { "POWER_RUNES", "Runes", "" }; case POWER_RUNIC_POWER: return { "POWER_RUNIC_POWER", "Runic Power", "" }; - case POWER_SOUL_SHARDS: return { "POWER_SOUL_SHARDS", "Soul Shards", "" }; - case POWER_LUNAR_POWER: return { "POWER_LUNAR_POWER", "Lunar Power", "" }; - case POWER_HOLY_POWER: return { "POWER_HOLY_POWER", "Holy Power", "" }; - case POWER_ALTERNATE_POWER: return { "POWER_ALTERNATE_POWER", "Alternate", "" }; - case POWER_MAELSTROM: return { "POWER_MAELSTROM", "Maelstrom", "" }; - case POWER_CHI: return { "POWER_CHI", "Chi", "" }; - case POWER_INSANITY: return { "POWER_INSANITY", "Insanity", "" }; - case POWER_BURNING_EMBERS: return { "POWER_BURNING_EMBERS", "Burning Embers (Obsolete)", "" }; - case POWER_DEMONIC_FURY: return { "POWER_DEMONIC_FURY", "Demonic Fury (Obsolete)", "" }; - case POWER_ARCANE_CHARGES: return { "POWER_ARCANE_CHARGES", "Arcane Charges", "" }; - case POWER_FURY: return { "POWER_FURY", "Fury", "" }; - case POWER_PAIN: return { "POWER_PAIN", "Pain", "" }; - case POWER_ESSENCE: return { "POWER_ESSENCE", "Essence", "" }; case POWER_RUNE_BLOOD: return { "POWER_RUNE_BLOOD", "Blood Runes", "" }; case POWER_RUNE_FROST: return { "POWER_RUNE_FROST", "Frost Runes", "" }; case POWER_RUNE_UNHOLY: return { "POWER_RUNE_UNHOLY", "Unholy Runes", "" }; - case POWER_ALTERNATE_QUEST: return { "POWER_ALTERNATE_QUEST", "Alternate (Quest)", "" }; - case POWER_ALTERNATE_ENCOUNTER: return { "POWER_ALTERNATE_ENCOUNTER", "Alternate (Encounter)", "" }; - case POWER_ALTERNATE_MOUNT: return { "POWER_ALTERNATE_MOUNT", "Alternate (Mount)", "" }; default: throw std::out_of_range("value"); } } @@ -150,28 +133,12 @@ TC_API_EXPORT Powers EnumUtils::FromIndex(size_t index) case 2: return POWER_RAGE; case 3: return POWER_FOCUS; case 4: return POWER_ENERGY; - case 5: return POWER_COMBO_POINTS; - case 6: return POWER_RUNES; - case 7: return POWER_RUNIC_POWER; - case 8: return POWER_SOUL_SHARDS; - case 9: return POWER_LUNAR_POWER; - case 10: return POWER_HOLY_POWER; - case 11: return POWER_ALTERNATE_POWER; - case 12: return POWER_MAELSTROM; - case 13: return POWER_CHI; - case 14: return POWER_INSANITY; - case 15: return POWER_BURNING_EMBERS; - case 16: return POWER_DEMONIC_FURY; - case 17: return POWER_ARCANE_CHARGES; - case 18: return POWER_FURY; - case 19: return POWER_PAIN; - case 20: return POWER_ESSENCE; + case 5: return POWER_ENERGY; + case 6: return POWER_RUNIC_POWER; + case 15: return POWER_COMBO_POINTS; case 21: return POWER_RUNE_BLOOD; case 22: return POWER_RUNE_FROST; case 23: return POWER_RUNE_UNHOLY; - case 24: return POWER_ALTERNATE_QUEST; - case 25: return POWER_ALTERNATE_ENCOUNTER; - case 26: return POWER_ALTERNATE_MOUNT; default: throw std::out_of_range("index"); } } @@ -186,28 +153,13 @@ TC_API_EXPORT size_t EnumUtils::ToIndex(Powers value) case POWER_RAGE: return 2; case POWER_FOCUS: return 3; case POWER_ENERGY: return 4; - case POWER_COMBO_POINTS: return 5; - case POWER_RUNES: return 6; - case POWER_RUNIC_POWER: return 7; - case POWER_SOUL_SHARDS: return 8; - case POWER_LUNAR_POWER: return 9; - case POWER_HOLY_POWER: return 10; - case POWER_ALTERNATE_POWER: return 11; - case POWER_MAELSTROM: return 12; - case POWER_CHI: return 13; - case POWER_INSANITY: return 14; - case POWER_BURNING_EMBERS: return 15; - case POWER_DEMONIC_FURY: return 16; - case POWER_ARCANE_CHARGES: return 17; - case POWER_FURY: return 18; - case POWER_PAIN: return 19; - case POWER_ESSENCE: return 20; + case POWER_HAPPINESS: return 5; + case POWER_RUNIC_POWER: return 6; + case POWER_COMBO_POINTS: return 15; case POWER_RUNE_BLOOD: return 21; case POWER_RUNE_FROST: return 22; case POWER_RUNE_UNHOLY: return 23; - case POWER_ALTERNATE_QUEST: return 24; - case POWER_ALTERNATE_ENCOUNTER: return 25; - case POWER_ALTERNATE_MOUNT: return 26; + default: throw std::out_of_range("value"); } } diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index d7be21e316f..d0517e1fb91 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -3831,8 +3831,8 @@ void AuraEffect::HandleModPowerRegen(AuraApplication const* aurApp, uint8 mode, // Update manaregen value if (GetMiscValue() == POWER_MANA) target->ToPlayer()->UpdateManaRegen(); - else if (GetMiscValue() == POWER_RUNES) - target->ToPlayer()->UpdateAllRunesRegen(); + //else if (GetMiscValue() == POWER_RUNES) + // target->ToPlayer()->UpdateAllRunesRegen(); // other powers are not immediate effects - implemented in Player::Regenerate, Creature::Regenerate } @@ -5992,10 +5992,12 @@ void AuraEffect::HandleEnableAltPower(AuraApplication const* aurApp, uint8 mode, if (!powerEntry) return; + /* if (apply) aurApp->GetTarget()->SetMaxPower(POWER_ALTERNATE_POWER, powerEntry->MaxPower); else aurApp->GetTarget()->SetMaxPower(POWER_ALTERNATE_POWER, 0); + */ } void AuraEffect::HandleModSpellCategoryCooldown(AuraApplication const* aurApp, uint8 mode, bool apply) const diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 2524846f31e..9de34355dc6 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -4686,8 +4686,8 @@ void Spell::SendSpellStart() && std::find_if(m_powerCost.begin(), m_powerCost.end(), [](SpellPowerCost const& cost) { return cost.Power != POWER_HEALTH; }) != m_powerCost.end()) castFlags |= CAST_FLAG_POWER_LEFT_SELF; - if (HasPowerTypeCost(POWER_RUNES)) - castFlags |= CAST_FLAG_NO_GCD; // not needed, but Blizzard sends it + //if (HasPowerTypeCost(POWER_RUNES)) + // castFlags |= CAST_FLAG_NO_GCD; // not needed, but Blizzard sends it if (m_spellInfo->HasAttribute(SPELL_ATTR8_HEAL_PREDICTION) && m_casttime && m_caster->IsUnit()) castFlags |= CAST_FLAG_HEAL_PREDICTION; @@ -4722,6 +4722,7 @@ void Spell::SendSpellStart() } } + /* if (castFlags & CAST_FLAG_RUNE_LIST) // rune cooldowns list { castData.RemainingRunes.emplace(); @@ -4747,6 +4748,7 @@ void Spell::SendSpellStart() castData.RemainingRunes->Cooldowns.push_back(0); } } + */ if (castFlags & CAST_FLAG_PROJECTILE) castData.AmmoDisplayID = GetSpellCastDataAmmo(); @@ -4787,7 +4789,7 @@ void Spell::SendSpellGo() if ((m_caster->GetTypeId() == TYPEID_PLAYER) && (m_caster->ToPlayer()->GetClass() == CLASS_DEATH_KNIGHT) - && HasPowerTypeCost(POWER_RUNES) + //&& HasPowerTypeCost(POWER_RUNES) && !(_triggeredCastFlags & TRIGGERED_IGNORE_POWER_AND_REAGENT_COST)) { castFlags |= CAST_FLAG_NO_GCD; // not needed, but Blizzard sends it @@ -4838,12 +4840,15 @@ void Spell::SendSpellGo() Player* player = ASSERT_NOTNULL(m_caster->ToPlayer()); castData.RemainingRunes->Start = m_runesState; // runes state before castData.RemainingRunes->Count = player->GetRunesState(); // runes state after + + /* for (uint8 i = 0; i < player->GetMaxPower(POWER_RUNES); ++i) { // float casts ensure the division is performed on floats as we need float result float baseCd = float(player->GetRuneBaseCooldown()); castData.RemainingRunes->Cooldowns.push_back((baseCd - float(player->GetRuneCooldown(i))) / baseCd * 255); // rune cooldown passed } + */ } if (castFlags & CAST_FLAG_ADJUST_MISSILE) @@ -5408,11 +5413,13 @@ void Spell::TakePower() } } + /* if (powerType == POWER_RUNES) { TakeRunePower(hit); continue; } + */ if (!cost.Amount) continue; @@ -5436,6 +5443,7 @@ void Spell::TakePower() SpellCastResult Spell::CheckRuneCost() const { + /* int32 runeCost = std::accumulate(m_powerCost.begin(), m_powerCost.end(), 0, [](int32 totalCost, SpellPowerCost const& cost) { return totalCost + (cost.Power == POWER_RUNES ? cost.Amount : 0); @@ -5458,12 +5466,14 @@ SpellCastResult Spell::CheckRuneCost() const if (readyRunes < runeCost) return SPELL_FAILED_NO_POWER; // not sure if result code is correct + */ return SPELL_CAST_OK; } void Spell::TakeRunePower(bool didHit) { + /* if (m_caster->GetTypeId() != TYPEID_PLAYER || m_caster->ToPlayer()->GetClass() != CLASS_DEATH_KNIGHT) return; @@ -5483,6 +5493,7 @@ void Spell::TakeRunePower(bool didHit) --runeCost; } } + */ } void Spell::TakeReagents() @@ -7257,12 +7268,14 @@ SpellCastResult Spell::CheckPower() const } //check rune cost only if a spell has PowerType == POWER_RUNES + /* if (cost.Power == POWER_RUNES) { SpellCastResult failReason = CheckRuneCost(); if (failReason != SPELL_CAST_OK) return failReason; } + */ // Check power amount if (int32(unitCaster->GetPower(cost.Power)) < cost.Amount) diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index 1e4d11a5a81..9276801cc6a 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -4025,9 +4025,6 @@ Optional SpellInfo::CalcPowerCost(SpellPowerEntry const* power, case POWER_MANA: powerCost += int32(CalculatePct(unitCaster->GetCreateMana(), power->PowerCostPct)); break; - case POWER_ALTERNATE_POWER: - TC_LOG_ERROR("spells", "SpellInfo::CalcPowerCost: Unknown power type POWER_ALTERNATE_POWER in spell {}", Id); - return {}; default: { if (PowerTypeEntry const* powerTypeEntry = sDB2Manager.GetPowerTypeEntry(Powers(power->PowerType))) diff --git a/src/server/scripts/Spells/spell_dk.cpp b/src/server/scripts/Spells/spell_dk.cpp index c37de92d958..f7ab1f1359c 100644 --- a/src/server/scripts/Spells/spell_dk.cpp +++ b/src/server/scripts/Spells/spell_dk.cpp @@ -97,9 +97,11 @@ class spell_dk_advantage_t10_4p : public AuraScript if (!player || caster->GetClass() != CLASS_DEATH_KNIGHT) return false; + /* for (uint8 i = 0; i < player->GetMaxPower(POWER_RUNES); ++i) if (player->GetRuneCooldown(i) == 0) return false; + */ return true; } diff --git a/src/server/scripts/Spells/spell_mage.cpp b/src/server/scripts/Spells/spell_mage.cpp index 2db4a8676f3..26a6e3ae9bf 100644 --- a/src/server/scripts/Spells/spell_mage.cpp +++ b/src/server/scripts/Spells/spell_mage.cpp @@ -182,16 +182,6 @@ class spell_mage_arcane_barrage : public SpellScript && ValidateSpellEffect({ { spellInfo->Id, EFFECT_1 } }); } - void ConsumeArcaneCharges() - { - Unit* caster = GetCaster(); - - // Consume all arcane charges - if (int32 arcaneCharges = -caster->ModifyPower(POWER_ARCANE_CHARGES, -caster->GetMaxPower(POWER_ARCANE_CHARGES), false)) - if (AuraEffect const* auraEffect = caster->GetAuraEffect(SPELL_MAGE_ARCANE_BARRAGE_R3, EFFECT_0, caster->GetGUID())) - caster->CastSpell(caster, SPELL_MAGE_ARCANE_BARRAGE_ENERGIZE, { SPELLVALUE_BASE_POINT0, arcaneCharges * auraEffect->GetAmount() / 100 }); - } - void HandleEffectHitTarget(SpellEffIndex /*effIndex*/) { if (GetHitUnit()->GetGUID() != _primaryTarget) @@ -207,7 +197,6 @@ class spell_mage_arcane_barrage : public SpellScript { OnEffectHitTarget += SpellEffectFn(spell_mage_arcane_barrage::HandleEffectHitTarget, EFFECT_0, SPELL_EFFECT_SCHOOL_DAMAGE); OnEffectLaunchTarget += SpellEffectFn(spell_mage_arcane_barrage::MarkPrimaryTarget, EFFECT_1, SPELL_EFFECT_DUMMY); - AfterCast += SpellCastFn(spell_mage_arcane_barrage::ConsumeArcaneCharges); } ObjectGuid _primaryTarget; diff --git a/src/server/scripts/Spells/spell_paladin.cpp b/src/server/scripts/Spells/spell_paladin.cpp index 4d3cc799b87..5150b674434 100644 --- a/src/server/scripts/Spells/spell_paladin.cpp +++ b/src/server/scripts/Spells/spell_paladin.cpp @@ -465,9 +465,6 @@ class spell_pal_divine_purpose : public AuraScript if (!procSpell) return false; - if (!procSpell->HasPowerTypeCost(POWER_HOLY_POWER)) - return false; - return roll_chance_i(aurEff->GetAmount()); } @@ -636,14 +633,6 @@ class spell_pal_fist_of_justice : public AuraScript return ValidateSpellInfo({ SPELL_PALADIN_HAMMER_OF_JUSTICE }); } - bool CheckEffectProc(AuraEffect const* /*aurEff*/, ProcEventInfo& eventInfo) - { - if (Spell const* procSpell = eventInfo.GetProcSpell()) - return procSpell->HasPowerTypeCost(POWER_HOLY_POWER); - - return false; - } - void HandleEffectProc(AuraEffect* aurEff, ProcEventInfo& /*procInfo*/) { int32 value = aurEff->GetAmount() / 10; @@ -653,7 +642,6 @@ class spell_pal_fist_of_justice : public AuraScript void Register() override { - DoCheckEffectProc += AuraCheckEffectProcFn(spell_pal_fist_of_justice::CheckEffectProc, EFFECT_0, SPELL_AURA_DUMMY); OnEffectProc += AuraEffectProcFn(spell_pal_fist_of_justice::HandleEffectProc, EFFECT_0, SPELL_AURA_DUMMY); } }; @@ -1255,16 +1243,6 @@ class spell_pal_righteous_protector : public AuraScript return ValidateSpellInfo({ SPELL_PALADIN_AVENGING_WRATH, SPELL_PALADIN_GUARDIAN_OF_ANCIENT_KINGS }); } - bool CheckEffectProc(AuraEffect const* /*aurEff*/, ProcEventInfo& eventInfo) - { - if (SpellInfo const* procSpell = eventInfo.GetSpellInfo()) - _baseHolyPowerCost = procSpell->CalcPowerCost(POWER_HOLY_POWER, false, eventInfo.GetActor(), eventInfo.GetSchoolMask()); - else - _baseHolyPowerCost.reset(); - - return _baseHolyPowerCost.has_value(); - } - void HandleEffectProc(AuraEffect* aurEff, ProcEventInfo& /*eventInfo*/) { int32 value = aurEff->GetAmount() * 100 * _baseHolyPowerCost->Amount; @@ -1275,7 +1253,6 @@ class spell_pal_righteous_protector : public AuraScript void Register() override { - DoCheckEffectProc += AuraCheckEffectProcFn(spell_pal_righteous_protector::CheckEffectProc, EFFECT_0, SPELL_AURA_DUMMY); OnEffectProc += AuraEffectProcFn(spell_pal_righteous_protector::HandleEffectProc, EFFECT_0, SPELL_AURA_DUMMY); } @@ -1306,9 +1283,6 @@ class spell_pal_selfless_healer : public AuraScript { bool CheckEffectProc(AuraEffect const* /*aurEff*/, ProcEventInfo& eventInfo) { - if (Spell const* procSpell = eventInfo.GetProcSpell()) - return procSpell->HasPowerTypeCost(POWER_HOLY_POWER); - return false; } diff --git a/src/server/scripts/Spells/spell_shaman.cpp b/src/server/scripts/Spells/spell_shaman.cpp index a48072df244..408c3b71319 100644 --- a/src/server/scripts/Spells/spell_shaman.cpp +++ b/src/server/scripts/Spells/spell_shaman.cpp @@ -143,20 +143,11 @@ class spell_sha_aftershock : public AuraScript bool CheckProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) { - if (Spell const* procSpell = eventInfo.GetProcSpell()) - if (Optional cost = procSpell->GetPowerTypeCostAmount(POWER_MAELSTROM)) - return cost > 0 && roll_chance_i(aurEff->GetAmount()); - return false; } void HandleEffectProc(AuraEffect* /*aurEff*/, ProcEventInfo& eventInfo) { - Spell const* procSpell = eventInfo.GetProcSpell(); - int32 energize = *procSpell->GetPowerTypeCostAmount(POWER_MAELSTROM); - - eventInfo.GetActor()->CastSpell(eventInfo.GetActor(), SPELL_SHAMAN_AFTERSHOCK_ENERGIZE, CastSpellExtraArgs(energize) - .AddSpellMod(SPELLVALUE_BASE_POINT0, energize)); } void Register() override -- cgit v1.2.3