Implemented SE_MassGroupBuff as spell effect (no longer hard coded for AA

only). Run required SQL to update AA tables.
Updated spells_new field175 -> numhits_type
This commit is contained in:
KayenEQ 2014-06-26 05:40:09 -04:00
parent 2a48b199d2
commit ec35c0d933
8 changed files with 22 additions and 11 deletions

View File

@ -6,6 +6,10 @@ Kayen: Updated SE_Hate (Renamed from SE_Hate2) to now properly work for instant
Kayen: Updated SE_FadingMemories - Base value will be properly utilized to set % chance for fade effect to work.
Kayen: Implemented SE_StrikeThough (Was incorrectly defined as implemented previously) - Works same as item bonus.
Kayen: Update SE_Taunt - Limit value if present will now add instant hate.
Kayen: Implemented SE_MassGroupBuff - Allows next group buff cast to be a MGB (AA now uses this)
Required SQL: utils/sql/git/required/2014_06_25_MGB_AA.sql
== 06/17/2014 ==
Kayen: Implemented SE_AStacker, SE_BStacker, SE_CStacker, SE_DStacker.

View File

@ -350,7 +350,7 @@ typedef enum {
#define SE_ProcChance 200 // implemented
#define SE_RangedProc 201 // implemented
//#define SE_IllusionOther 202 // *not implemented as bonus(Project Illusion)
//#define SE_MassGroupBuff 203 // *not implemented as bonus
#define SE_MassGroupBuff 203 // implemented
#define SE_GroupFearImmunity 204 // *not implemented as bonus
#define SE_Rampage 205 // implemented
#define SE_AETaunt 206 // implemented

View File

@ -352,11 +352,6 @@ void Client::HandleAAAction(aaID activate) {
entity_list.AETaunt(this);
break;
case aaActionMassBuff:
EnableAAEffect(aaEffectMassGroupBuff, 3600);
Message_StringID(MT_Disciplines, MGB_STRING); //The next group buff you cast will hit all targets in range.
break;
case aaActionFlamingArrows:
//toggle it
if(CheckAAEffect(aaEffectFlamingArrows))

View File

@ -43,7 +43,7 @@ typedef enum {
//use these for AAs which dont cast spells, yet need effects
//if this list grows beyond 32, more work is needed in *AAEffect
typedef enum { //AA Effect IDs
aaEffectMassGroupBuff = 1,
aaEffectMassGroupBuff = 1, //unused - Handled via spell effect.
aaEffectRampage,
aaEffectSharedHealth,
aaEffectFlamingArrows,

View File

@ -180,6 +180,7 @@ Mob::Mob(const char* in_name,
trackable = true;
has_shieldequiped = false;
has_numhits = false;
has_MGB = false;
if(in_aa_title>0)
aa_title = in_aa_title;

View File

@ -268,6 +268,8 @@ public:
void CheckNumHitsRemaining(uint8 type, uint32 buff_slot=0, uint16 spell_id=SPELL_UNKNOWN);
bool HasNumhits() const { return has_numhits; }
inline void Numhits(bool val) { has_numhits = val; }
bool HasMGB() const { return has_MGB; }
inline void SetMGB(bool val) { has_MGB = val; }
void SpreadVirus(uint16 spell_id, uint16 casterID);
bool IsNimbusEffectActive(uint32 nimbus_effect);
void SetNimbusEffect(uint32 nimbus_effect);
@ -1097,6 +1099,7 @@ protected:
bool offhand;
bool has_shieldequiped;
bool has_numhits;
bool has_MGB;
// Bind wound
Timer bindwound_timer;

View File

@ -2710,6 +2710,13 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial)
break;
}
case SE_MassGroupBuff:{
SetMGB(true);
Message_StringID(MT_Disciplines, MGB_STRING);
break;
}
// Handled Elsewhere
case SE_ImmuneFleeing:
case SE_NegateSpellEffect:
@ -2864,7 +2871,7 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial)
case SE_ACv2:
case SE_ManaRegen_v2:
case SE_FcDamagePctCrit:
case SE_FcHealAmt:
case SE_FcHealAmt:
case SE_FcHealPctIncoming:
case SE_CriticalHealDecay:
case SE_CriticalRegenDecay:
@ -2878,6 +2885,7 @@ bool Mob::SpellEffect(Mob* caster, uint16 spell_id, float partial)
case SE_PetCriticalHit:
case SE_SlayUndead:
case SE_GiveDoubleAttack:
case SE_StrikeThrough:
case SE_StrikeThrough2:
case SE_SecondaryDmgInc:
case SE_ArcheryDamageModifier:

View File

@ -399,7 +399,7 @@ bool Mob::DoCastSpell(uint16 spell_id, uint16 target_id, uint16 slot,
mana_cost = GetActSpellCost(spell_id, mana_cost);
}
if(IsClient() && CastToClient()->CheckAAEffect(aaEffectMassGroupBuff) && spells[spell_id].can_mgb)
if(HasMGB() && spells[spell_id].can_mgb)
mana_cost *= 2;
// mana is checked for clients on the frontend. we need to recheck it for NPCs though
@ -1969,11 +1969,11 @@ bool Mob::SpellFinished(uint16 spell_id, Mob *spell_target, uint16 slot, uint16
}
#endif //BOTS
if(spells[spell_id].can_mgb && IsClient() && CastToClient()->CheckAAEffect(aaEffectMassGroupBuff))
if(spells[spell_id].can_mgb && HasMGB())
{
SpellOnTarget(spell_id, this);
entity_list.MassGroupBuff(this, this, spell_id, true);
CastToClient()->DisableAAEffect(aaEffectMassGroupBuff);
SetMGB(false);
}
else
{