Skip to content

Commit

Permalink
Core/Spell: Pyroblast effect
Browse files Browse the repository at this point in the history
  • Loading branch information
Spyder committed Dec 24, 2012
1 parent 0249d6d commit 73e83a4
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 83 deletions.
33 changes: 18 additions & 15 deletions .cproject
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage"> <?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
<storageModule moduleId="org.eclipse.cdt.core.settings"> <storageModule moduleId="org.eclipse.cdt.core.settings">
<cconfiguration id="0.43936889"> <cconfiguration id="0.720934124">
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="0.43936889" moduleId="org.eclipse.cdt.core.settings" name="Default"> <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="0.720934124" moduleId="org.eclipse.cdt.core.settings" name="Default">
<externalSettings/> <externalSettings/>
<extensions> <extensions>
<extension id="org.eclipse.cdt.core.VCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/> <extension id="org.eclipse.cdt.core.VCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
Expand All @@ -14,20 +14,20 @@
</extensions> </extensions>
</storageModule> </storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> <storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration buildProperties="" description="" id="0.43936889" name="Default" parent="org.eclipse.cdt.build.core.prefbase.cfg"> <configuration buildProperties="" description="" id="0.720934124" name="Default" parent="org.eclipse.cdt.build.core.prefbase.cfg">
<folderInfo id="0.43936889." name="/" resourcePath=""> <folderInfo id="0.720934124." name="/" resourcePath="">
<toolChain id="org.eclipse.cdt.build.core.prefbase.toolchain.2025991291" name="No ToolChain" resourceTypeBasedDiscovery="false" superClass="org.eclipse.cdt.build.core.prefbase.toolchain"> <toolChain id="org.eclipse.cdt.build.core.prefbase.toolchain.242073039" name="No ToolChain" resourceTypeBasedDiscovery="false" superClass="org.eclipse.cdt.build.core.prefbase.toolchain">
<targetPlatform id="org.eclipse.cdt.build.core.prefbase.toolchain.2025991291.1213850621" name=""/> <targetPlatform id="org.eclipse.cdt.build.core.prefbase.toolchain.242073039.1225118087" name=""/>
<builder id="org.eclipse.cdt.build.core.settings.default.builder.1388710517" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" superClass="org.eclipse.cdt.build.core.settings.default.builder"/> <builder id="org.eclipse.cdt.build.core.settings.default.builder.1988521114" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" superClass="org.eclipse.cdt.build.core.settings.default.builder"/>
<tool id="org.eclipse.cdt.build.core.settings.holder.libs.1120652708" name="holder for library settings" superClass="org.eclipse.cdt.build.core.settings.holder.libs"/> <tool id="org.eclipse.cdt.build.core.settings.holder.libs.186750343" name="holder for library settings" superClass="org.eclipse.cdt.build.core.settings.holder.libs"/>
<tool id="org.eclipse.cdt.build.core.settings.holder.1284418344" name="Assembly" superClass="org.eclipse.cdt.build.core.settings.holder"> <tool id="org.eclipse.cdt.build.core.settings.holder.685117209" name="Assembly" superClass="org.eclipse.cdt.build.core.settings.holder">
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.1912937973" languageId="org.eclipse.cdt.core.assembly" languageName="Assembly" sourceContentType="org.eclipse.cdt.core.asmSource" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/> <inputType id="org.eclipse.cdt.build.core.settings.holder.inType.870883460" languageId="org.eclipse.cdt.core.assembly" languageName="Assembly" sourceContentType="org.eclipse.cdt.core.asmSource" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
</tool> </tool>
<tool id="org.eclipse.cdt.build.core.settings.holder.1187098814" name="GNU C++" superClass="org.eclipse.cdt.build.core.settings.holder"> <tool id="org.eclipse.cdt.build.core.settings.holder.1966265838" name="GNU C++" superClass="org.eclipse.cdt.build.core.settings.holder">
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.2012542347" languageId="org.eclipse.cdt.core.g++" languageName="GNU C++" sourceContentType="org.eclipse.cdt.core.cxxSource,org.eclipse.cdt.core.cxxHeader" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/> <inputType id="org.eclipse.cdt.build.core.settings.holder.inType.1591365771" languageId="org.eclipse.cdt.core.g++" languageName="GNU C++" sourceContentType="org.eclipse.cdt.core.cxxSource,org.eclipse.cdt.core.cxxHeader" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
</tool> </tool>
<tool id="org.eclipse.cdt.build.core.settings.holder.987886700" name="GNU C" superClass="org.eclipse.cdt.build.core.settings.holder"> <tool id="org.eclipse.cdt.build.core.settings.holder.1821719063" name="GNU C" superClass="org.eclipse.cdt.build.core.settings.holder">
<inputType id="org.eclipse.cdt.build.core.settings.holder.inType.431393003" languageId="org.eclipse.cdt.core.gcc" languageName="GNU C" sourceContentType="org.eclipse.cdt.core.cSource,org.eclipse.cdt.core.cHeader" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/> <inputType id="org.eclipse.cdt.build.core.settings.holder.inType.1434742195" languageId="org.eclipse.cdt.core.gcc" languageName="GNU C" sourceContentType="org.eclipse.cdt.core.cSource,org.eclipse.cdt.core.cHeader" superClass="org.eclipse.cdt.build.core.settings.holder.inType"/>
</tool> </tool>
</toolChain> </toolChain>
</folderInfo> </folderInfo>
Expand All @@ -37,13 +37,16 @@
</cconfiguration> </cconfiguration>
</storageModule> </storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> <storageModule moduleId="cdtBuildSystem" version="4.0.0">
<project id="ArkCORE.null.711791208" name="ArkCORE"/> <project id="ArkCORE.null.734418866" name="ArkCORE"/>
</storageModule> </storageModule>
<storageModule moduleId="scannerConfiguration"> <storageModule moduleId="scannerConfiguration">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
<scannerConfigBuildInfo instanceId="0.43936889"> <scannerConfigBuildInfo instanceId="0.43936889">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo> </scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="0.720934124">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo>
<scannerConfigBuildInfo instanceId="0.724540704"> <scannerConfigBuildInfo instanceId="0.724540704">
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/> <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
</scannerConfigBuildInfo> </scannerConfigBuildInfo>
Expand Down
76 changes: 58 additions & 18 deletions src/server/game/Spells/SpellEffects.cpp
Expand Up @@ -519,6 +519,7 @@ void Spell::SpellDamageSchoolDmg (SpellEffIndex effIndex)
if (unitTarget->GetGUID() == m_caster->GetGUID() || unitTarget->GetTypeId() != TYPEID_PLAYER) if (unitTarget->GetGUID() == m_caster->GetGUID() || unitTarget->GetTypeId() != TYPEID_PLAYER)
return; return;



float radius = GetSpellRadiusForHostile(sSpellRadiusStore.LookupEntry(m_spellInfo->EffectRadiusIndex[0])); float radius = GetSpellRadiusForHostile(sSpellRadiusStore.LookupEntry(m_spellInfo->EffectRadiusIndex[0]));
if (!radius) if (!radius)
return; return;
Expand Down Expand Up @@ -1266,6 +1267,7 @@ void Spell::EffectDummy (SpellEffIndex effIndex)
return; return;
} }



m_caster->CastSpell(m_caster, spell_id, true); m_caster->CastSpell(m_caster, spell_id, true);
return; return;
} }
Expand Down Expand Up @@ -1345,6 +1347,7 @@ void Spell::EffectDummy (SpellEffIndex effIndex)
unitTarget->CastSpell(unitTarget, 44867, true); unitTarget->CastSpell(unitTarget, 44867, true);
} }



return; return;
} }
case 44869: // Spectral Blast case 44869: // Spectral Blast
Expand Down Expand Up @@ -1430,6 +1433,7 @@ void Spell::EffectDummy (SpellEffIndex effIndex)
break; break;
} }



return; return;
} }
case 48046: // Use Camera case 48046: // Use Camera
Expand Down Expand Up @@ -1760,27 +1764,34 @@ void Spell::EffectDummy (SpellEffIndex effIndex)
} }
switch (m_spellInfo->Id) switch (m_spellInfo->Id)
{ {
case 1459: // Arcane Brilliance case 92315: // Pyroblast!
{ m_caster->RemoveAurasDueToSpell(48108); // Remove hot streak
if (m_caster->GetTypeId() == TYPEID_PLAYER) break;
{ case 30455: // Ice lance
std::list<Unit*> PartyMembers; if (Aura* fof = m_caster->GetAura(44544))
m_caster->GetPartyMembers(PartyMembers); AddPctN(damage, 25*fof->GetCharges());
bool Continue = false; break;
uint32 player = 0; case 1459: // Arcane Brilliance
for (std::list<Unit*>::iterator itr = PartyMembers.begin(); itr != PartyMembers.end(); ++itr) // If caster is in party with a player
{ {
++player; if (m_caster->GetTypeId() == TYPEID_PLAYER)
if (Continue == false && player > 1) {
Continue = true; std::list<Unit*> PartyMembers;
m_caster->GetPartyMembers(PartyMembers);
bool Continue = false;
uint32 player = 0;
for (std::list<Unit*>::iterator itr = PartyMembers.begin(); itr != PartyMembers.end(); ++itr) // If caster is in party with a player
{
++player;
if (Continue == false && player > 1)
Continue = true;
}
if (Continue == true)
m_caster->CastSpell(unitTarget, 79058, true); // Arcane Brilliance (For all)
else
m_caster->CastSpell(unitTarget, 79057, true); // Arcane Brilliance (Only for caster)
} }
if (Continue == true) break;
m_caster->CastSpell(unitTarget, 79058, true); // Arcane Brilliance (For all)
else
m_caster->CastSpell(unitTarget, 79057, true); // Arcane Brilliance (Only for caster)
} }
break;
}
case 42955: // Conjure Refreshment case 42955: // Conjure Refreshment
{ {
if (m_caster->getLevel() > 33 && m_caster->getLevel() < 44) if (m_caster->getLevel() > 33 && m_caster->getLevel() < 44)
Expand Down Expand Up @@ -1847,6 +1858,33 @@ void Spell::EffectDummy (SpellEffIndex effIndex)
m_caster->CastCustomSpell(unitTarget, 50782, &bp0, NULL, NULL, true, 0); m_caster->CastCustomSpell(unitTarget, 50782, &bp0, NULL, NULL, true, 0);
return; return;
} }
// Execute
if (m_spellInfo->SpellFamilyFlags[EFFECT_0] & SPELLFAMILYFLAG_WARRIOR_EXECUTE)
{
if (!unitTarget)
return;

spell_id = 20647;

int32 rageUsed = std::min<int32>(300 - m_powerCost, m_caster->GetPower(POWER_RAGE));
int32 newRage = std::max<int32>(0, m_caster->GetPower(POWER_RAGE) - rageUsed);

// Sudden Death rage save
if (AuraEffect * aurEff = m_caster->GetAuraEffect(SPELL_AURA_PROC_TRIGGER_SPELL, SPELLFAMILY_GENERIC, 1989, EFFECT_0))
{
int32 ragesave = SpellMgr::CalculateSpellEffectAmount(aurEff->GetSpellProto(), EFFECT_1) * 10;
newRage = std::max(newRage, ragesave);
}

m_caster->SetPower(POWER_RAGE, uint32(newRage));

// Glyph of Execution bonus
if (AuraEffect * aurEff = m_caster->GetAuraEffect(58367, EFFECT_0))
rageUsed += aurEff->GetAmount() * 10;

bp = damage + int32(rageUsed * m_spellInfo->EffectDamageMultiplier[effIndex] + m_caster->GetTotalAttackPowerValue(BASE_ATTACK) * 0.2f);
break;
}
// Concussion Blow // Concussion Blow
if (m_spellInfo->SpellFamilyFlags[0] & SPELLFAMILYFLAG_WARRIOR_CONCUSSION_BLOW) if (m_spellInfo->SpellFamilyFlags[0] & SPELLFAMILYFLAG_WARRIOR_CONCUSSION_BLOW)
{ {
Expand Down Expand Up @@ -4007,6 +4045,7 @@ void Spell::EffectSummonType (SpellEffIndex effIndex)
if (!summon) if (!summon)
continue; continue;



if (properties->Category == SUMMON_CATEGORY_ALLY) if (properties->Category == SUMMON_CATEGORY_ALLY)
{ {
summon->SetUInt64Value(UNIT_FIELD_SUMMONEDBY, m_originalCaster->GetGUID()); summon->SetUInt64Value(UNIT_FIELD_SUMMONEDBY, m_originalCaster->GetGUID());
Expand Down Expand Up @@ -5119,6 +5158,7 @@ void Spell::SpellDamageWeaponDmg (SpellEffIndex effIndex)
// Annihilation // Annihilation
if (AuraEffect const * aurEff = m_caster->GetDummyAuraEffect(SPELLFAMILY_DEATHKNIGHT, 2710, EFFECT_0)) if (AuraEffect const * aurEff = m_caster->GetDummyAuraEffect(SPELLFAMILY_DEATHKNIGHT, 2710, EFFECT_0))



totalDamagePercentMod *= ((SpellMgr::CalculateSpellEffectAmount(m_spellInfo, EFFECT_2) * unitTarget->GetDiseasesByCaster(m_caster->GetGUID()) / 2.0f) + 100.0f) / 100.0f; totalDamagePercentMod *= ((SpellMgr::CalculateSpellEffectAmount(m_spellInfo, EFFECT_2) * unitTarget->GetDiseasesByCaster(m_caster->GetGUID()) / 2.0f) + 100.0f) / 100.0f;
break; break;
} }
Expand Down

0 comments on commit 73e83a4

Please sign in to comment.