Invisible/Hide mechanics when cast on

Updated mechanics to be consistent with live regarding how invisible breaks when the client is the target of a spell.
Invisible will drop whenever a client is hit with a detrimental spell, regardless of if resisted, if it does damage or AOE.
Hide skill now also follows the same rules as above.
Implemented support for Rogue AA - Nerves of Steel which gives a chance for hide NOT to break
when client is hit with an AOE spell.
This commit is contained in:
KayenEQ
2015-10-10 15:16:49 -04:00
parent aae073f588
commit 261b6a4623
11 changed files with 102 additions and 8 deletions
+3 -3
View File
@@ -1382,7 +1382,7 @@ bool Client::Attack(Mob* other, int Hand, bool bRiposte, bool IsStrikethrough, b
if (damage > 0 && HasSkillProcSuccess() && other && other->GetHP() > 0)
TrySkillProc(other, skillinuse, 0, true, Hand);
CommonBreakInvisible();
CommonBreakInvisibleFromCombat();
if(GetTarget())
TriggerDefensiveProcs(weapon, other, Hand, damage);
@@ -1940,7 +1940,7 @@ bool NPC::Attack(Mob* other, int Hand, bool bRiposte, bool IsStrikethrough, bool
MeleeLifeTap(damage);
CommonBreakInvisible();
CommonBreakInvisibleFromCombat();
//I doubt this works...
if (!GetTarget())
@@ -4487,7 +4487,7 @@ void Mob::CommonOutgoingHitSuccess(Mob* defender, int32 &damage, SkillUseTypes s
CheckNumHitsRemaining(NumHit::OutgoingHitSuccess);
}
void Mob::CommonBreakInvisible()
void Mob::CommonBreakInvisibleFromCombat()
{
//break invis when you attack
if(invisible) {