mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-23 02:25:38 +01:00
Core/Auras: Implemented SPELL_AURA_ENABLE_ALT_POWER
This commit is contained in:
@@ -239,6 +239,7 @@ TaxiPathNodesByPath sTaxiPathNodesByPath;
|
||||
static DBCStorage <TaxiPathNodeEntry> sTaxiPathNodeStore(TaxiPathNodeEntryfmt);
|
||||
|
||||
DBCStorage <TotemCategoryEntry> sTotemCategoryStore(TotemCategoryEntryfmt);
|
||||
DBCStorage <UnitPowerBarEntry> sUnitPowerBarStore(UnitPowerBarfmt);
|
||||
DBCStorage <VehicleEntry> sVehicleStore(VehicleEntryfmt);
|
||||
DBCStorage <VehicleSeatEntry> sVehicleSeatStore(VehicleSeatEntryfmt);
|
||||
DBCStorage <WMOAreaTableEntry> sWMOAreaTableStore(WMOAreaTableEntryfmt);
|
||||
@@ -731,6 +732,8 @@ void LoadDBCStores(const std::string& dataPath)
|
||||
//LoadDBC(availableDbcLocales, bad_dbc_files, sTeamContributionPointsStore, dbcPath, "TeamContributionPoints.dbc");
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sTotemCategoryStore, dbcPath, "TotemCategory.dbc");//15595
|
||||
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sUnitPowerBarStore, dbcPath, "UnitPowerBar.dbc");//15595
|
||||
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sVehicleStore, dbcPath, "Vehicle.dbc");//15595
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sVehicleSeatStore, dbcPath, "VehicleSeat.dbc");//15595
|
||||
|
||||
|
||||
@@ -226,6 +226,7 @@ extern TaxiMask sDeathKnightTaxiNodesMask;
|
||||
extern TaxiPathSetBySource sTaxiPathSetBySource;
|
||||
extern TaxiPathNodesByPath sTaxiPathNodesByPath;
|
||||
extern DBCStorage <TotemCategoryEntry> sTotemCategoryStore;
|
||||
extern DBCStorage <UnitPowerBarEntry> sUnitPowerBarStore;
|
||||
extern DBCStorage <VehicleEntry> sVehicleStore;
|
||||
extern DBCStorage <VehicleSeatEntry> sVehicleSeatStore;
|
||||
extern DBCStorage <WMOAreaTableEntry> sWMOAreaTableStore;
|
||||
|
||||
@@ -2149,6 +2149,27 @@ struct TotemCategoryEntry
|
||||
uint32 categoryMask; // 3 m_totemCategoryMask (compatibility mask for same type: different for totems, compatible from high to low for rods)
|
||||
};
|
||||
|
||||
struct UnitPowerBarEntry
|
||||
{
|
||||
uint32 Id;
|
||||
uint32 MinPower;
|
||||
uint32 MaxPower;
|
||||
//uint32 Unk0;
|
||||
//uint32 Unk1;
|
||||
//float Unk2;
|
||||
//float Unk3;
|
||||
//uint32 BarType;
|
||||
//uint32 TextureFile[6];
|
||||
//uint32 Unk4[6];
|
||||
//uint32 DisplayFlags;
|
||||
//char* PowerName;
|
||||
//char* CostString;
|
||||
//char* EmptyMessage;
|
||||
//char* Tooltip;
|
||||
//float StartInset;
|
||||
//float EndInset;
|
||||
};
|
||||
|
||||
#define MAX_VEHICLE_SEATS 8
|
||||
|
||||
struct VehicleEntry
|
||||
|
||||
@@ -163,6 +163,7 @@ char const TaxiNodesEntryfmt[] = "nifffsiiixx";
|
||||
char const TaxiPathEntryfmt[] = "niii";
|
||||
char const TaxiPathNodeEntryfmt[] = "diiifffiiii";
|
||||
char const TotemCategoryEntryfmt[] = "nxii";
|
||||
char const UnitPowerBarfmt[] = "niixxxxxxxxxxxxxxxxxxxxxxxx";
|
||||
char const VehicleEntryfmt[] = "niffffiiiiiiiifffffffffffffffssssfifiixx";
|
||||
char const VehicleSeatEntryfmt[] = "niiffffffffffiiiiiifffffffiiifffiiiiiiiffiiiiixxxxxxxxxxxxxxxxxxxx";
|
||||
char const WMOAreaTableEntryfmt[] = "niiixxxxxiixxxx";
|
||||
|
||||
@@ -404,7 +404,7 @@ pAuraEffectHandler AuraEffectHandler[TOTAL_AURAS]=
|
||||
&AuraEffect::HandleNULL, //343 SPELL_AURA_343
|
||||
&AuraEffect::HandleNULL, //344 SPELL_AURA_MOD_AUTOATTACK_DAMAGE
|
||||
&AuraEffect::HandleNoImmediateEffect, //345 SPELL_AURA_BYPASS_ARMOR_FOR_CASTER
|
||||
&AuraEffect::HandleNULL, //346 SPELL_AURA_ENABLE_ALT_POWER
|
||||
&AuraEffect::HandleEnableAltPower, //346 SPELL_AURA_ENABLE_ALT_POWER
|
||||
&AuraEffect::HandleNULL, //347 SPELL_AURA_MOD_SPELL_COOLDOWN_BY_HASTE
|
||||
&AuraEffect::HandleNoImmediateEffect, //348 SPELL_AURA_DEPOSIT_BONUS_MONEY_IN_GUILD_BANK_ON_LOOT implemented in WorldSession::HandleLootMoneyOpcode
|
||||
&AuraEffect::HandleNoImmediateEffect, //349 SPELL_AURA_MOD_CURRENCY_GAIN implemented in Player::ModifyCurrency
|
||||
@@ -6529,3 +6529,19 @@ void AuraEffect::HandleAuraForceWeather(AuraApplication const* aurApp, uint8 mod
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void AuraEffect::HandleEnableAltPower(AuraApplication const* aurApp, uint8 mode, bool apply) const
|
||||
{
|
||||
if (!(mode & AURA_EFFECT_HANDLE_REAL))
|
||||
return;
|
||||
|
||||
uint32 altPowerId = GetMiscValue();
|
||||
UnitPowerBarEntry const* powerEntry = sUnitPowerBarStore.LookupEntry(altPowerId);
|
||||
if (!powerEntry)
|
||||
return;
|
||||
|
||||
if (apply)
|
||||
aurApp->GetTarget()->SetMaxPower(POWER_ALTERNATE_POWER, powerEntry->MaxPower);
|
||||
else
|
||||
aurApp->GetTarget()->SetMaxPower(POWER_ALTERNATE_POWER, 0);
|
||||
}
|
||||
|
||||
@@ -279,6 +279,7 @@ class AuraEffect
|
||||
void HandlePreventResurrection(AuraApplication const* aurApp, uint8 mode, bool apply) const;
|
||||
void HandleMastery(AuraApplication const* aurApp, uint8 mode, bool apply) const;
|
||||
void HandleAuraForceWeather(AuraApplication const* aurApp, uint8 mode, bool apply) const;
|
||||
void HandleEnableAltPower(AuraApplication const* aurApp, uint8 mode, bool apply) const;
|
||||
|
||||
// aura effect periodic tick handlers
|
||||
void HandlePeriodicDummyAuraTick(Unit* target, Unit* caster) const;
|
||||
|
||||
Reference in New Issue
Block a user