Core/Misc: Defined new summon properties titles

Port From (https://github.com/TrinityCore/TrinityCore/commit/3700e0ef5de95dc79290cd16b5abacdd0d490570)
This commit is contained in:
hondacrx
2020-04-25 00:30:04 -04:00
parent 0f1cbbb502
commit 9ee0d404b7
9 changed files with 70 additions and 40 deletions
+2 -1
View File
@@ -1557,7 +1557,8 @@ namespace Framework.Constants
Unk18 = 0x00020000,
Unk19 = 0x00040000,
Unk20 = 0x00080000,
Unk21 = 0x00100000 // Totems
Unk21 = 0x00100000, // Totems
Companion = 0x00200000
}
public enum TaxiNodeFlags : byte
+37 -8
View File
@@ -140,22 +140,51 @@ namespace Framework.Constants
// uses this category
}
public enum SummonType
public enum SummonTitle
{
None = 0,
Pet = 1,
Guardian = 2,
Minion = 3,
Totem = 4,
Minipet = 5,
Guardian2 = 6,
Wild2 = 7,
Wild3 = 8, // Related to phases and DK prequest line (3.3.5a)
Companion = 5,
Runeblade = 6,
Construct = 7,
Opponent = 8, // Related to phases and DK prequest line (3.3.5a)
Vehicle = 9,
Vehicle2 = 10, // Oculus and Argent Tournament vehicles (3.3.5a)
Mount = 10, // Oculus and Argent Tournament vehicles (3.3.5a)
LightWell = 11,
Jeeves = 12,
Unk13 = 13
Butler = 12,
Aka = 13,
Gateway = 14,
Hatred = 15,
Statue = 16,
Spirit = 17,
WarBanner = 18,
Heartwarmer = 19,
HiredBy = 20,
PurchasedBy = 21,
Pride = 22,
TwistedImage = 23,
NoodleCart = 24,
InnerDemon = 25,
Bodyguard = 26,
Name = 27,
Squire = 28,
Champion = 29,
TheBetrayer = 30,
EruptingReflection = 31,
HopelessReflection = 32,
MalignantReflection = 33,
WailingReflection = 34,
Assistant = 35,
Enforcer = 36,
Recruit = 37,
Admirer = 38,
EvilTwin = 39,
Greed = 40,
LostMind = 41,
ServantOfNZoth = 44
}
public enum SummonerType
+1 -1
View File
@@ -566,7 +566,7 @@ namespace Game.DataStorage
public uint Id;
public SummonCategory Control;
public uint Faction;
public SummonType Title;
public SummonTitle Title;
public int Slot;
public SummonPropFlags Flags;
}
+1 -1
View File
@@ -378,7 +378,7 @@ namespace Game.Entities
m_bonusSpellDamage = 0;
UnitTypeMask |= UnitTypeMask.Guardian;
if (properties != null && (properties.Title == SummonType.Pet || properties.Control == SummonCategory.Pet))
if (properties != null && (properties.Title == SummonTitle.Pet || properties.Control == SummonCategory.Pet))
{
UnitTypeMask |= UnitTypeMask.ControlableGuardian;
InitCharmInfo();
+8 -8
View File
@@ -420,20 +420,20 @@ namespace Game.Entities
{
switch (properties.Title)
{
case SummonType.Minion:
case SummonType.Guardian:
case SummonType.Guardian2:
case SummonTitle.Minion:
case SummonTitle.Guardian:
case SummonTitle.Runeblade:
mask = UnitTypeMask.Guardian;
break;
case SummonType.Totem:
case SummonType.LightWell:
case SummonTitle.Totem:
case SummonTitle.LightWell:
mask = UnitTypeMask.Totem;
break;
case SummonType.Vehicle:
case SummonType.Vehicle2:
case SummonTitle.Vehicle:
case SummonTitle.Mount:
mask = UnitTypeMask.Summon;
break;
case SummonType.Minipet:
case SummonTitle.Companion:
mask = UnitTypeMask.Minion;
break;
default:
+2 -2
View File
@@ -199,7 +199,7 @@ namespace Game.Entities
if (GetMinionGUID().IsEmpty())
SetMinionGUID(minion.GetGUID());
if (minion.m_Properties != null && minion.m_Properties.Title == SummonType.Minipet)
if (minion.m_Properties != null && minion.m_Properties.Title == SummonTitle.Companion)
{
SetCritterGUID(minion.GetGUID());
Player thisPlayer = ToPlayer();
@@ -230,7 +230,7 @@ namespace Game.Entities
m_Controlled.Remove(minion);
if (minion.m_Properties != null && minion.m_Properties.Title == SummonType.Minipet)
if (minion.m_Properties != null && minion.m_Properties.Title == SummonTitle.Companion)
{
if (GetCritterGUID() == minion.GetGUID())
SetCritterGUID(ObjectGuid.Empty);
+8 -8
View File
@@ -3317,20 +3317,20 @@ namespace Game.Maps
{
switch (properties.Title)
{
case SummonType.Minion:
case SummonType.Guardian:
case SummonType.Guardian2:
case SummonTitle.Minion:
case SummonTitle.Guardian:
case SummonTitle.Runeblade:
mask = UnitTypeMask.Guardian;
break;
case SummonType.Totem:
case SummonType.LightWell:
case SummonTitle.Totem:
case SummonTitle.LightWell:
mask = UnitTypeMask.Totem;
break;
case SummonType.Vehicle:
case SummonType.Vehicle2:
case SummonTitle.Vehicle:
case SummonTitle.Mount:
mask = UnitTypeMask.Summon;
break;
case SummonType.Minipet:
case SummonTitle.Companion:
mask = UnitTypeMask.Minion;
break;
default:
+9 -9
View File
@@ -1693,19 +1693,19 @@ namespace Game.Spells
}
switch (properties.Title)
{
case SummonType.Pet:
case SummonType.Guardian:
case SummonType.Guardian2:
case SummonType.Minion:
case SummonTitle.Pet:
case SummonTitle.Guardian:
case SummonTitle.Runeblade:
case SummonTitle.Minion:
SummonGuardian(effIndex, entry, properties, numSummons);
break;
// Summons a vehicle, but doesn't force anyone to enter it (see SUMMON_CATEGORY_VEHICLE)
case SummonType.Vehicle:
case SummonType.Vehicle2:
case SummonTitle.Vehicle:
case SummonTitle.Mount:
summon = m_caster.GetMap().SummonCreature(entry, destTarget, properties, (uint)duration, m_originalCaster, m_spellInfo.Id);
break;
case SummonType.LightWell:
case SummonType.Totem:
case SummonTitle.LightWell:
case SummonTitle.Totem:
{
summon = m_caster.GetMap().SummonCreature(entry, destTarget, properties, (uint)duration, m_originalCaster, m_spellInfo.Id, 0, personalSpawn);
if (summon == null || !summon.IsTotem())
@@ -1718,7 +1718,7 @@ namespace Game.Spells
}
break;
}
case SummonType.Minipet:
case SummonTitle.Companion:
{
summon = m_caster.GetMap().SummonCreature(entry, destTarget, properties, (uint)duration, m_originalCaster, m_spellInfo.Id, 0, personalSpawn);
if (summon == null || !summon.HasUnitTypeMask(UnitTypeMask.Minion))
+2 -2
View File
@@ -3025,10 +3025,10 @@ namespace Game.Entities
SummonPropertiesRecord properties = CliDB.SummonPropertiesStorage.LookupByKey(121);
if (properties != null)
properties.Title = SummonType.Totem;
properties.Title = SummonTitle.Totem;
properties = CliDB.SummonPropertiesStorage.LookupByKey(647); // 52893
if (properties != null)
properties.Title = SummonType.Totem;
properties.Title = SummonTitle.Totem;
properties = CliDB.SummonPropertiesStorage.LookupByKey(628);
if (properties != null) // Hungry Plaguehound
properties.Control = SummonCategory.Pet;