Core/Spells: Fix display for Shaman totems
This commit is contained in:
@@ -68,18 +68,11 @@ namespace Game.Entities
|
||||
}
|
||||
|
||||
// set display id depending on caster's race
|
||||
SpellInfo createdBySpell = Global.SpellMgr.GetSpellInfo(GetUInt32Value(UnitFields.CreatedBySpell));
|
||||
if (createdBySpell != null)
|
||||
{
|
||||
SpellEffectInfo[] effects = createdBySpell.GetEffectsForDifficulty(Difficulty.None);
|
||||
var summonEffect = effects.FirstOrDefault(effect =>
|
||||
{
|
||||
return effect != null && effect.IsEffect(SpellEffectName.Summon);
|
||||
});
|
||||
|
||||
if (summonEffect != null)
|
||||
SetDisplayId(owner.GetModelForTotem((PlayerTotemType)summonEffect.MiscValueB));
|
||||
}
|
||||
uint totemDisplayId = Global.SpellMgr.GetModelForTotem(GetUInt32Value(UnitFields.CreatedBySpell), owner.GetRace());
|
||||
if (totemDisplayId == 0)
|
||||
Log.outError(LogFilter.Spells, $"Spell {GetUInt32Value(UnitFields.CreatedBySpell)} with RaceID ({owner.GetRace()}) have no totem model data defined, set to default model.");
|
||||
else
|
||||
SetDisplayId(totemDisplayId);
|
||||
}
|
||||
|
||||
base.InitStats(duration);
|
||||
|
||||
@@ -2235,104 +2235,6 @@ namespace Game.Entities
|
||||
SetDisplayId(GetNativeDisplayId());
|
||||
}
|
||||
|
||||
public uint GetModelForTotem(PlayerTotemType totemType)
|
||||
{
|
||||
switch (GetRace())
|
||||
{
|
||||
case Race.Orc:
|
||||
{
|
||||
switch (totemType)
|
||||
{
|
||||
case PlayerTotemType.Fire: // fire
|
||||
return 30758;
|
||||
case PlayerTotemType.Earth: // earth
|
||||
return 30757;
|
||||
case PlayerTotemType.Water: // water
|
||||
return 30759;
|
||||
case PlayerTotemType.Air: // air
|
||||
return 30756;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case Race.Dwarf:
|
||||
{
|
||||
switch (totemType)
|
||||
{
|
||||
case PlayerTotemType.Fire: // fire
|
||||
return 30754;
|
||||
case PlayerTotemType.Earth: // earth
|
||||
return 30753;
|
||||
case PlayerTotemType.Water: // water
|
||||
return 30755;
|
||||
case PlayerTotemType.Air: // air
|
||||
return 30736;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case Race.Troll:
|
||||
{
|
||||
switch (totemType)
|
||||
{
|
||||
case PlayerTotemType.Fire: // fire
|
||||
return 30762;
|
||||
case PlayerTotemType.Earth: // earth
|
||||
return 30761;
|
||||
case PlayerTotemType.Water: // water
|
||||
return 30763;
|
||||
case PlayerTotemType.Air: // air
|
||||
return 30760;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case Race.Tauren:
|
||||
{
|
||||
switch (totemType)
|
||||
{
|
||||
case PlayerTotemType.Fire: // fire
|
||||
return 4589;
|
||||
case PlayerTotemType.Earth: // earth
|
||||
return 4588;
|
||||
case PlayerTotemType.Water: // water
|
||||
return 4587;
|
||||
case PlayerTotemType.Air: // air
|
||||
return 4590;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case Race.Draenei:
|
||||
{
|
||||
switch (totemType)
|
||||
{
|
||||
case PlayerTotemType.Fire: // fire
|
||||
return 19074;
|
||||
case PlayerTotemType.Earth: // earth
|
||||
return 19073;
|
||||
case PlayerTotemType.Water: // water
|
||||
return 19075;
|
||||
case PlayerTotemType.Air: // air
|
||||
return 19071;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case Race.Goblin:
|
||||
{
|
||||
switch (totemType)
|
||||
{
|
||||
case PlayerTotemType.Fire: // fire
|
||||
return 30783;
|
||||
case PlayerTotemType.Earth: // earth
|
||||
return 30782;
|
||||
case PlayerTotemType.Water: // water
|
||||
return 30784;
|
||||
case PlayerTotemType.Air: // air
|
||||
return 30781;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public bool IsStopped() { return !HasUnitState(UnitState.Moving); }
|
||||
|
||||
public bool HasUnitTypeMask(UnitTypeMask mask) { return Convert.ToBoolean(mask & m_unitTypeMask); }
|
||||
|
||||
Reference in New Issue
Block a user