Implemented SE_IllusionOther - Allows next Illusion buff (self only)

cast to be cast on target. (AA ProjectIllusion now uses this)
Run required SLQ to update AA.
This commit is contained in:
KayenEQ
2014-06-26 06:23:27 -04:00
committed by Arthur Ice
parent 54d1cff546
commit 34bbb9236e
9 changed files with 27 additions and 12 deletions
-6
View File
@@ -454,12 +454,6 @@ void Client::HandleAAAction(aaID activate) {
}
break;
case aaActionProjectIllusion:
EnableAAEffect(aaEffectProjectIllusion, 3600);
Message(10, "The power of your next illusion spell will flow to your grouped target in your place.");
break;
case aaActionEscape:
Escape();
break;
+1 -1
View File
@@ -50,7 +50,7 @@ typedef enum { //AA Effect IDs
aaEffectFrostArrows,
aaEffectWarcry,
aaEffectLeechTouch,
aaEffectProjectIllusion // seveian 2008-09-23
aaEffectProjectIllusion // unused - Handled via spell effect
} aaEffectType;
+1
View File
@@ -181,6 +181,7 @@ Mob::Mob(const char* in_name,
has_shieldequiped = false;
has_numhits = false;
has_MGB = false;
has_ProjectIllusion = false;
if(in_aa_title>0)
aa_title = in_aa_title;
+3
View File
@@ -270,6 +270,8 @@ public:
inline void Numhits(bool val) { has_numhits = val; }
bool HasMGB() const { return has_MGB; }
inline void SetMGB(bool val) { has_MGB = val; }
bool HasProjectIllusion() const { return has_ProjectIllusion ; }
inline void SetProjectIllusion(bool val) { has_ProjectIllusion = val; }
void SpreadVirus(uint16 spell_id, uint16 casterID);
bool IsNimbusEffectActive(uint32 nimbus_effect);
void SetNimbusEffect(uint32 nimbus_effect);
@@ -1100,6 +1102,7 @@ protected:
bool has_shieldequiped;
bool has_numhits;
bool has_MGB;
bool has_ProjectIllusion;
// Bind wound
Timer bindwound_timer;
+6
View File
@@ -2717,6 +2717,12 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial)
break;
}
case SE_IllusionOther: {
SetProjectIllusion(true);
Message(10, "The power of your next illusion spell will flow to your grouped target in your place.");
break;
}
// Handled Elsewhere
case SE_ImmuneFleeing:
case SE_NegateSpellEffect:
+4 -4
View File
@@ -1371,7 +1371,7 @@ bool Mob::DetermineSpellTargets(uint16 spell_id, Mob *&spell_target, Mob *&ae_ce
&& IsClient()
&& (IsGrouped() // still self only if not grouped
|| IsRaidGrouped())
&& CastToClient()->CheckAAEffect(aaEffectProjectIllusion)){
&& (HasProjectIllusion())){
mlog(AA__MESSAGE, "Project Illusion overwrote target caster: %s spell id: %d was ON", GetName(), spell_id);
targetType = ST_GroupClientAndPet;
}
@@ -1853,7 +1853,7 @@ bool Mob::SpellFinished(uint16 spell_id, Mob *spell_target, uint16 slot, uint16
range = GetActSpellRange(spell_id, range);
if(IsPlayerIllusionSpell(spell_id)
&& IsClient()
&& CastToClient()->CheckAAEffect(aaEffectProjectIllusion)){
&& (HasProjectIllusion())){
range = 100;
}
if(spell_target != nullptr && spell_target != this) {
@@ -1912,9 +1912,9 @@ bool Mob::SpellFinished(uint16 spell_id, Mob *spell_target, uint16 slot, uint16
if(IsPlayerIllusionSpell(spell_id)
&& IsClient()
&& CastToClient()->CheckAAEffect(aaEffectProjectIllusion)){
&& (HasProjectIllusion())){
mlog(AA__MESSAGE, "Effect Project Illusion for %s on spell id: %d was ON", GetName(), spell_id);
CastToClient()->DisableAAEffect(aaEffectProjectIllusion);
SetProjectIllusion(false);
}
else{
mlog(AA__MESSAGE, "Effect Project Illusion for %s on spell id: %d was OFF", GetName(), spell_id);