aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDoctorKraft <david.serdobbel.contact@gmail.com>2016-12-24 15:31:45 +0100
committerShauren <shauren.trinity@gmail.com>2016-12-24 15:31:45 +0100
commita5473648dd1d96fba6dcafe64cb3f20982a0cc39 (patch)
tree190cc91f322b3c7a7c6ecd1763160ee99ecff2c3 /src
parent0c0f1b8440381ed05385fad99a13cd69078d1e2d (diff)
Core/Units: Update druid shapeshift form models (#18554)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp112
1 files changed, 91 insertions, 21 deletions
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 0d035c748f6..1f7445ce2ca 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -14302,6 +14302,9 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const
if (getRace() == RACE_NIGHTELF)
{
uint8 hairColor = GetByteValue(PLAYER_BYTES, PLAYER_BYTES_OFFSET_HAIR_COLOR_ID);
+ if (HasAura(210333)) // Glyph of the Feral Chameleon
+ hairColor = urand(0, 10);
+
switch (hairColor)
{
case 7: // Violet
@@ -14315,13 +14318,16 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const
return 29407;
case 4: // White
return 29408;
- default: // original - Dark Blue
+ default: // Original - Dark Blue
return 892;
}
}
else if (getRace() == RACE_TROLL)
{
uint8 hairColor = GetByteValue(PLAYER_BYTES, PLAYER_BYTES_OFFSET_HAIR_COLOR_ID);
+ if (HasAura(210333)) // Glyph of the Feral Chameleon
+ hairColor = urand(0, 12);
+
switch (hairColor)
{
case 0: // Red
@@ -14337,7 +14343,7 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const
case 7: // Purple
case 10:
return 33665;
- default: // original - white
+ default: // Original - White
return 33669;
}
}
@@ -14345,6 +14351,9 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const
{
// Based on Skin color
uint8 skinColor = GetByteValue(PLAYER_BYTES, PLAYER_BYTES_OFFSET_SKIN_ID);
+ if (HasAura(210333)) // Glyph of the Feral Chameleon
+ skinColor = urand(0, 9);
+
// Male
if (getGender() == GENDER_MALE)
{
@@ -14355,12 +14364,12 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const
case 2: // Black
case 7:
return 33661;
- case 4: // yellow
+ case 4: // Yellow
return 33664;
case 3: // White
case 5:
return 33663;
- default: // original - Gray
+ default: // Original - Gray
return 33660;
}
}
@@ -14380,7 +14389,7 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const
return 33664;
case 2: // White
return 33663;
- default: // original - Gray
+ default: // Original - Gray
return 33660;
}
}
@@ -14389,6 +14398,9 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const
else if (getRace() == RACE_TAUREN)
{
uint8 skinColor = GetByteValue(PLAYER_BYTES, PLAYER_BYTES_OFFSET_SKIN_ID);
+ if (HasAura(210333)) // Glyph of the Feral Chameleon
+ skinColor = urand(0, 20);
+
// Male
if (getGender() == GENDER_MALE)
{
@@ -14414,7 +14426,7 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const
case 4:
case 5:
return 29412;
- default: // original - Grey
+ default: // Original - Grey
return 8571;
}
}
@@ -14436,7 +14448,7 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const
case 2:
case 3:
return 29412;
- default: // original - Grey
+ default: // Original - Grey
return 8571;
}
}
@@ -14450,6 +14462,9 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const
if (getRace() == RACE_NIGHTELF)
{
uint8 hairColor = GetByteValue(PLAYER_BYTES, PLAYER_BYTES_OFFSET_HAIR_COLOR_ID);
+ if (HasAura(107059)) // Glyph of the Ursol Chameleon
+ hairColor = urand(0, 8);
+
switch (hairColor)
{
case 0: // Green
@@ -14462,13 +14477,16 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const
return 29416;
case 3: // Light Blue
return 29417;
- default: // original - Violet
- return 2281;
+ default: // Original - Violet
+ return 29415;
}
}
else if (getRace() == RACE_TROLL)
{
uint8 hairColor = GetByteValue(PLAYER_BYTES, PLAYER_BYTES_OFFSET_HAIR_COLOR_ID);
+ if (HasAura(107059)) // Glyph of the Ursol Chameleon
+ hairColor = urand(0, 14);
+
switch (hairColor)
{
case 0: // Red
@@ -14485,7 +14503,7 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const
case 11:
case 12:
return 33658;
- default: // original - Blue
+ default: // Original - Blue
return 33655;
}
}
@@ -14493,6 +14511,9 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const
{
// Based on Skin color
uint8 skinColor = GetByteValue(PLAYER_BYTES, PLAYER_BYTES_OFFSET_SKIN_ID);
+ if (HasAura(107059)) // Glyph of the Ursol Chameleon
+ skinColor = urand(0, 8);
+
// Male
if (getGender() == GENDER_MALE)
{
@@ -14508,7 +14529,7 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const
case 3: // White
case 5:
return 33654;
- default: // original - Gray
+ default: // Original - Gray
return 33650;
}
}
@@ -14528,7 +14549,7 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const
return 33654;
case 2: // White
return 33653;
- default: // original - Gray
+ default: // Original - Gray
return 33650;
}
}
@@ -14537,6 +14558,9 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const
else if (getRace() == RACE_TAUREN)
{
uint8 skinColor = GetByteValue(PLAYER_BYTES, PLAYER_BYTES_OFFSET_SKIN_ID);
+ if (HasAura(107059)) // Glyph of the Ursol Chameleon
+ skinColor = urand(0, 20);
+
// Male
if (getGender() == GENDER_MALE)
{
@@ -14562,7 +14586,7 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const
return 29420;
case 18: // Completly White
return 29421;
- default: // original - Brown
+ default: // Original - Brown
return 2289;
}
}
@@ -14584,13 +14608,13 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const
return 29420;
case 10: // Completly White
return 29421;
- default: // original - Brown
+ default: // Original - Brown
return 2289;
}
}
}
else if (Player::TeamForRace(getRace()) == ALLIANCE)
- return 2281;
+ return 29415;
else
return 2289;
case FORM_FLIGHT_FORM:
@@ -14598,12 +14622,32 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const
return 20857;
return 20872;
case FORM_FLIGHT_FORM_EPIC:
- if (Player::TeamForRace(getRace()) == ALLIANCE)
- return (getRace() == RACE_WORGEN ? 37729 : 21243);
- if (getRace() == RACE_TROLL)
- return 37730;
- return 21244;
+ if (HasAura(219062)) // Glyph of the Sentinel
+ {
+ switch (getRace())
+ {
+ case RACE_NIGHTELF: // Blue
+ return 64328;
+ case RACE_TAUREN: // Brown
+ return 64329;
+ case RACE_WORGEN: // Purple
+ return 64330;
+ case RACE_TROLL: // White
+ return 64331;
+ default:
+ break;
+ }
+ }
+ else
+ {
+ if (Player::TeamForRace(getRace()) == ALLIANCE)
+ return (getRace() == RACE_WORGEN ? 37729 : 21243);
+ if (getRace() == RACE_TROLL)
+ return 37730;
+ return 21244;
+ }
case FORM_MOONKIN_FORM:
+ {
switch (getRace())
{
case RACE_NIGHTELF:
@@ -14618,8 +14662,34 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const
break;
}
break;
+ }
+ case FORM_AQUATIC_FORM:
+ if (HasAura(114333)) // Glyph of the Orca
+ return 4591;
+ return 2428;
+ case FORM_TRAVEL_FORM:
+ {
+ if (HasAura(131113)) // Glyph of the Cheetah
+ return 1043;
+
+ if (HasAura(224122)) // Glyph of the Doe
+ return 70450;
+
+ switch (getRace())
+ {
+ case RACE_NIGHTELF:
+ case RACE_WORGEN:
+ return 40816;
+ case RACE_TROLL:
+ case RACE_TAUREN:
+ return 45339;
+ default:
+ break;
+ }
+ break;
+ }
case FORM_GHOST_WOLF:
- if (HasAura(58135)) //! Glyph of Arctic Wolf
+ if (HasAura(58135)) // Glyph of Spectral Wolf
return 27312;
default:
break;