mirror of
https://github.com/mangosfour/server.git
synced 2025-12-14 07:37:01 +00:00
[8414] Re-implement [8406] in more clear and working way.
* Rename IsSingleFromSpellSpecificPerCaster to IsSingleFromSpellSpecificPerTargetPerCaster for clear meaning. * Rename IsSingleFromSpellSpecificRanksPerTarget to IsSingleFromSpellSpecificSpellRanksPerTarget for clear meaning. * Add new IsSingleFromSpellSpecificPerTarget for case single spell specific aura allowed to be at target from any caster and use it. Move some spell psecific checks (mostly sellf casted) from IsSingleFromSpellSpecificPerCaster to new function.
This commit is contained in:
parent
b91da7846e
commit
9f01551210
4 changed files with 57 additions and 42 deletions
|
|
@ -277,36 +277,53 @@ SpellSpecific GetSpellSpecific(uint32 spellId)
|
|||
|
||||
|
||||
// target not allow have more one spell specific from same caster
|
||||
bool IsSingleFromSpellSpecificPerCaster(SpellSpecific spellSpec1,SpellSpecific spellSpec2)
|
||||
bool IsSingleFromSpellSpecificPerTargetPerCaster(SpellSpecific spellSpec1,SpellSpecific spellSpec2)
|
||||
{
|
||||
switch(spellSpec1)
|
||||
{
|
||||
case SPELL_SEAL:
|
||||
case SPELL_BLESSING:
|
||||
case SPELL_AURA:
|
||||
case SPELL_STING:
|
||||
case SPELL_CURSE:
|
||||
case SPELL_POSITIVE_SHOUT:
|
||||
case SPELL_JUDGEMENT:
|
||||
case SPELL_HAND:
|
||||
return spellSpec1==spellSpec2;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// target not allow have more one ranks from spell from spell specific per target
|
||||
bool IsSingleFromSpellSpecificSpellRanksPerTarget(SpellSpecific spellSpec1,SpellSpecific spellSpec2)
|
||||
{
|
||||
switch(spellSpec1)
|
||||
{
|
||||
case SPELL_BLESSING:
|
||||
case SPELL_AURA:
|
||||
case SPELL_CURSE:
|
||||
case SPELL_HAND:
|
||||
return spellSpec1==spellSpec2;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// target not allow have more one spell specific per target from any caster
|
||||
bool IsSingleFromSpellSpecificPerTarget(SpellSpecific spellSpec1,SpellSpecific spellSpec2)
|
||||
{
|
||||
switch(spellSpec1)
|
||||
{
|
||||
case SPELL_SEAL:
|
||||
case SPELL_ASPECT:
|
||||
case SPELL_TRACKER:
|
||||
case SPELL_WARLOCK_ARMOR:
|
||||
case SPELL_MAGE_ARMOR:
|
||||
case SPELL_ELEMENTAL_SHIELD:
|
||||
case SPELL_MAGE_POLYMORPH:
|
||||
case SPELL_POSITIVE_SHOUT:
|
||||
case SPELL_JUDGEMENT:
|
||||
case SPELL_PRESENCE:
|
||||
case SPELL_HAND:
|
||||
case SPELL_WELL_FED:
|
||||
return spellSpec1==spellSpec2;
|
||||
case SPELL_FOOD:
|
||||
return spellSpec2==SPELL_FOOD
|
||||
|| spellSpec2==SPELL_FOOD_AND_DRINK;
|
||||
case SPELL_DRINK:
|
||||
return spellSpec2==SPELL_DRINK
|
||||
|| spellSpec2==SPELL_FOOD_AND_DRINK;
|
||||
case SPELL_FOOD_AND_DRINK:
|
||||
return spellSpec2==SPELL_FOOD
|
||||
|| spellSpec2==SPELL_DRINK
|
||||
|| spellSpec2==SPELL_FOOD_AND_DRINK;
|
||||
case SPELL_BATTLE_ELIXIR:
|
||||
return spellSpec2==SPELL_BATTLE_ELIXIR
|
||||
|| spellSpec2==SPELL_FLASK_ELIXIR;
|
||||
|
|
@ -317,22 +334,16 @@ bool IsSingleFromSpellSpecificPerCaster(SpellSpecific spellSpec1,SpellSpecific s
|
|||
return spellSpec2==SPELL_BATTLE_ELIXIR
|
||||
|| spellSpec2==SPELL_GUARDIAN_ELIXIR
|
||||
|| spellSpec2==SPELL_FLASK_ELIXIR;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// target not allow have more one ranks from spell from spell specific per target
|
||||
bool IsSingleFromSpellSpecificRanksPerTarget(SpellSpecific spellId_spec, SpellSpecific i_spellId_spec)
|
||||
{
|
||||
switch(spellId_spec)
|
||||
{
|
||||
case SPELL_BLESSING:
|
||||
case SPELL_AURA:
|
||||
case SPELL_CURSE:
|
||||
case SPELL_HAND:
|
||||
case SPELL_ELEMENTAL_SHIELD:
|
||||
return spellId_spec==i_spellId_spec;
|
||||
case SPELL_FOOD:
|
||||
return spellSpec2==SPELL_FOOD
|
||||
|| spellSpec2==SPELL_FOOD_AND_DRINK;
|
||||
case SPELL_DRINK:
|
||||
return spellSpec2==SPELL_DRINK
|
||||
|| spellSpec2==SPELL_FOOD_AND_DRINK;
|
||||
case SPELL_FOOD_AND_DRINK:
|
||||
return spellSpec2==SPELL_FOOD
|
||||
|| spellSpec2==SPELL_DRINK
|
||||
|| spellSpec2==SPELL_FOOD_AND_DRINK;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue