diff --git a/Source/Game/Achievements/AchievementManager.cs b/Source/Game/Achievements/AchievementManager.cs index e0f10147b..9093135c0 100644 --- a/Source/Game/Achievements/AchievementManager.cs +++ b/Source/Game/Achievements/AchievementManager.cs @@ -553,7 +553,7 @@ namespace Game.Achievements //! Since no common attributes were found, (not even in titleRewardFlags field) //! we explicitly check by ID. Maybe in the future we could move the achievement_reward //! condition fields to the condition system. - uint titleId = reward.TitleId[achievement.Id == 1793 ? (int)_owner.GetNativeSex() : (_owner.GetTeam() == Team.Alliance ? 0 : 1)]; + uint titleId = reward.TitleId[achievement.Id == 1793 ? (int)_owner.GetNativeGender() : (_owner.GetTeam() == Team.Alliance ? 0 : 1)]; if (titleId != 0) { CharTitlesRecord titleEntry = CliDB.CharTitlesStorage.LookupByKey(titleId); @@ -668,7 +668,7 @@ namespace Game.Achievements Guild guild = Global.GuildMgr.GetGuildById(_owner.GetGuildId()); if (guild) { - BroadcastTextBuilder say_builder = new(_owner, ChatMsg.GuildAchievement, (uint)BroadcastTextIds.AchivementEarned, _owner.GetGender(), _owner, achievement.Id); + BroadcastTextBuilder say_builder = new(_owner, ChatMsg.GuildAchievement, (uint)BroadcastTextIds.AchivementEarned, _owner.GetNativeGender(), _owner, achievement.Id); var say_do = new LocalizedDo(say_builder); guild.BroadcastWorker(say_do, _owner); } @@ -685,7 +685,7 @@ namespace Game.Achievements // if player is in world he can tell his friends about new achievement else if (_owner.IsInWorld) { - BroadcastTextBuilder _builder = new(_owner, ChatMsg.Achievement, (uint)BroadcastTextIds.AchivementEarned, _owner.GetGender(), _owner, achievement.Id); + BroadcastTextBuilder _builder = new(_owner, ChatMsg.Achievement, (uint)BroadcastTextIds.AchivementEarned, _owner.GetNativeGender(), _owner, achievement.Id); var _localizer = new LocalizedDo(_builder); var _worker = new PlayerDistWorker(_owner, WorldConfig.GetFloatValue(WorldCfg.ListenRangeSay), _localizer); Cell.VisitWorldObjects(_owner, _worker, WorldConfig.GetFloatValue(WorldCfg.ListenRangeSay)); diff --git a/Source/Game/Achievements/CriteriaHandler.cs b/Source/Game/Achievements/CriteriaHandler.cs index eff2d6bda..fd221080f 100644 --- a/Source/Game/Achievements/CriteriaHandler.cs +++ b/Source/Game/Achievements/CriteriaHandler.cs @@ -1758,7 +1758,7 @@ namespace Game.Achievements return false; break; case ModifierTreeType.PlayerNativeGender: // 98 - if (referencePlayer.GetNativeSex() != (Gender)reqValue) + if (referencePlayer.GetNativeGender() != (Gender)reqValue) return false; break; case ModifierTreeType.PlayerSkillEqualOrGreaterThan: // 99 @@ -3395,7 +3395,7 @@ namespace Game.Achievements return false; case ModifierTreeType.PlayerSpellShapeshiftFormCreatureDisplayInfoSelection: // 308 { - ShapeshiftFormModelData formModelData = Global.DB2Mgr.GetShapeshiftFormModelData(referencePlayer.GetRace(), referencePlayer.GetNativeSex(), (ShapeShiftForm)secondaryAsset); + ShapeshiftFormModelData formModelData = Global.DB2Mgr.GetShapeshiftFormModelData(referencePlayer.GetRace(), referencePlayer.GetNativeGender(), (ShapeShiftForm)secondaryAsset); if (formModelData == null) return false; diff --git a/Source/Game/Chat/Commands/CharacterCommands.cs b/Source/Game/Chat/Commands/CharacterCommands.cs index 65092d82e..368708050 100644 --- a/Source/Game/Chat/Commands/CharacterCommands.cs +++ b/Source/Game/Chat/Commands/CharacterCommands.cs @@ -49,7 +49,7 @@ namespace Game.Chat { if (target.HasTitle(titleInfo)) { - string name = (target.GetGender() == Gender.Male ? titleInfo.Name : titleInfo.Name1)[handler.GetSessionDbcLocale()]; + string name = (target.GetNativeGender() == Gender.Male ? titleInfo.Name : titleInfo.Name1)[handler.GetSessionDbcLocale()]; if (string.IsNullOrEmpty(name)) continue; diff --git a/Source/Game/Chat/Commands/MiscCommands.cs b/Source/Game/Chat/Commands/MiscCommands.cs index a9ce3b369..c4f59105c 100644 --- a/Source/Game/Chat/Commands/MiscCommands.cs +++ b/Source/Game/Chat/Commands/MiscCommands.cs @@ -1589,7 +1589,7 @@ namespace Game.Chat mapId = target.GetMapId(); areaId = target.GetAreaId(); alive = target.IsAlive() ? handler.GetCypherString(CypherStrings.Yes) : handler.GetCypherString(CypherStrings.No); - gender = target.GetNativeSex(); + gender = target.GetNativeGender(); } // get additional information from DB else diff --git a/Source/Game/Chat/Commands/ModifyCommands.cs b/Source/Game/Chat/Commands/ModifyCommands.cs index 4a06cdab3..d9f0055fc 100644 --- a/Source/Game/Chat/Commands/ModifyCommands.cs +++ b/Source/Game/Chat/Commands/ModifyCommands.cs @@ -601,7 +601,7 @@ namespace Game.Chat // Set gender target.SetGender(gender); - target.SetNativeSex(gender); + target.SetNativeGender(gender); // Change display ID target.InitDisplayIds(); diff --git a/Source/Game/Chat/Commands/TitleCommands.cs b/Source/Game/Chat/Commands/TitleCommands.cs index 000263de4..ad125c866 100644 --- a/Source/Game/Chat/Commands/TitleCommands.cs +++ b/Source/Game/Chat/Commands/TitleCommands.cs @@ -64,7 +64,7 @@ namespace Game.Chat.Commands target.SetTitle(titleInfo); // to be sure that title now known target.SetChosenTitle(titleInfo.MaskID); - handler.SendSysMessage(CypherStrings.TitleCurrentRes, id, (target.GetGender() == Gender.Male ? titleInfo.Name : titleInfo.Name1)[handler.GetSessionDbcLocale()], tNameLink); + handler.SendSysMessage(CypherStrings.TitleCurrentRes, id, (target.GetNativeGender() == Gender.Male ? titleInfo.Name : titleInfo.Name1)[handler.GetSessionDbcLocale()], tNameLink); return true; } @@ -102,7 +102,7 @@ namespace Game.Chat.Commands string tNameLink = handler.GetNameLink(target); - string titleNameStr = string.Format((target.GetGender() == Gender.Male ? titleInfo.Name : titleInfo.Name1)[handler.GetSessionDbcLocale()].ConvertFormatSyntax(), target.GetName()); + string titleNameStr = string.Format((target.GetNativeGender() == Gender.Male ? titleInfo.Name : titleInfo.Name1)[handler.GetSessionDbcLocale()].ConvertFormatSyntax(), target.GetName()); target.SetTitle(titleInfo); handler.SendSysMessage(CypherStrings.TitleAddRes, id, titleNameStr, tNameLink); @@ -146,7 +146,7 @@ namespace Game.Chat.Commands string tNameLink = handler.GetNameLink(target); - string titleNameStr = string.Format((target.GetGender() == Gender.Male ? titleInfo.Name : titleInfo.Name1)[handler.GetSessionDbcLocale()].ConvertFormatSyntax(), target.GetName()); + string titleNameStr = string.Format((target.GetNativeGender() == Gender.Male ? titleInfo.Name : titleInfo.Name1)[handler.GetSessionDbcLocale()].ConvertFormatSyntax(), target.GetName()); handler.SendSysMessage(CypherStrings.TitleRemoveRes, id, titleNameStr, tNameLink); diff --git a/Source/Game/Conditions/Condition.cs b/Source/Game/Conditions/Condition.cs index 2c79ca801..6ca235708 100644 --- a/Source/Game/Conditions/Condition.cs +++ b/Source/Game/Conditions/Condition.cs @@ -99,7 +99,7 @@ namespace Game.Conditions break; case ConditionTypes.Gender: if (player != null) - condMeets = player.GetGender() == (Gender)ConditionValue1; + condMeets = player.GetNativeGender() == (Gender)ConditionValue1; break; case ConditionTypes.Skill: if (player != null) diff --git a/Source/Game/Conditions/ConditionManager.cs b/Source/Game/Conditions/ConditionManager.cs index d59eebb77..a87d33591 100644 --- a/Source/Game/Conditions/ConditionManager.cs +++ b/Source/Game/Conditions/ConditionManager.cs @@ -1846,7 +1846,7 @@ namespace Game if (condition.Gender >= 0 && (int)player.GetGender() != condition.Gender) return false; - if (condition.NativeGender >= 0 && player.GetNativeSex() != (Gender)condition.NativeGender) + if (condition.NativeGender >= 0 && player.GetNativeGender() != (Gender)condition.NativeGender) return false; if (condition.PowerType != -1 && condition.PowerTypeComp != 0) diff --git a/Source/Game/DataStorage/WhoListStorage.cs b/Source/Game/DataStorage/WhoListStorage.cs index de05e312b..cabab5c7c 100644 --- a/Source/Game/DataStorage/WhoListStorage.cs +++ b/Source/Game/DataStorage/WhoListStorage.cs @@ -86,7 +86,7 @@ namespace Game.DataStorage guildGuid = guild.GetGUID(); _whoListStorage.Add(new WhoListPlayerInfo(player.GetGUID(), player.GetTeam(), player.GetSession().GetSecurity(), player.GetLevel(), - player.GetClass(), player.GetRace(), player.GetZoneId(), (byte)player.GetNativeSex(), player.IsVisible(), + player.GetClass(), player.GetRace(), player.GetZoneId(), (byte)player.GetNativeGender(), player.IsVisible(), player.IsGameMaster(), playerName, guildName, guildGuid)); } } diff --git a/Source/Game/Entities/Player/Player.DB.cs b/Source/Game/Entities/Player/Player.DB.cs index de8106588..fcb721be9 100644 --- a/Source/Game/Entities/Player/Player.DB.cs +++ b/Source/Game/Entities/Player/Player.DB.cs @@ -2725,7 +2725,7 @@ namespace Game.Entities SetCustomizations(customizations, false); SetInventorySlotCount(inventorySlots); SetBankBagSlotCount(bankSlots); - SetNativeSex(gender); + SetNativeGender(gender); SetUpdateFieldValue(m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.Inebriation), drunk); SetPlayerFlags(playerFlags); SetPlayerFlagsEx(playerFlagsEx); @@ -3393,7 +3393,7 @@ namespace Game.Entities stmt.AddValue(index++, GetName()); stmt.AddValue(index++, (byte)GetRace()); stmt.AddValue(index++, (byte)GetClass()); - stmt.AddValue(index++, (byte)GetNativeSex()); // save gender from PLAYER_BYTES_3, UNIT_BYTES_0 changes with every transform effect + stmt.AddValue(index++, (byte)GetNativeGender()); // save gender from PLAYER_BYTES_3, UNIT_BYTES_0 changes with every transform effect stmt.AddValue(index++, GetLevel()); stmt.AddValue(index++, m_activePlayerData.XP); stmt.AddValue(index++, GetMoney()); @@ -3517,7 +3517,7 @@ namespace Game.Entities stmt.AddValue(index++, GetName()); stmt.AddValue(index++, (byte)GetRace()); stmt.AddValue(index++, (byte)GetClass()); - stmt.AddValue(index++, (byte)GetNativeSex()); // save gender from PLAYER_BYTES_3, UNIT_BYTES_0 changes with every transform effect + stmt.AddValue(index++, (byte)GetNativeGender()); // save gender from PLAYER_BYTES_3, UNIT_BYTES_0 changes with every transform effect stmt.AddValue(index++, GetLevel()); stmt.AddValue(index++, m_activePlayerData.XP); stmt.AddValue(index++, GetMoney()); diff --git a/Source/Game/Entities/Player/Player.cs b/Source/Game/Entities/Player/Player.cs index ee7e8a94c..5aa7fcabb 100644 --- a/Source/Game/Entities/Player/Player.cs +++ b/Source/Game/Entities/Player/Player.cs @@ -249,7 +249,7 @@ namespace Game.Entities SetCustomizations(createInfo.Customizations); SetRestState(RestTypes.XP, ((GetSession().IsARecruiter() || GetSession().GetRecruiterId() != 0) ? PlayerRestState.RAFLinked : PlayerRestState.NotRAFLinked)); SetRestState(RestTypes.Honor, PlayerRestState.NotRAFLinked); - SetNativeSex(createInfo.Sex); + SetNativeGender(createInfo.Sex); SetInventorySlotCount(InventorySlots.DefaultSize); // set starting level @@ -4453,7 +4453,7 @@ namespace Game.Entities flags |= CorpseFlags.FFAPvP; corpse.SetRace((byte)GetRace()); - corpse.SetSex((byte)GetNativeSex()); + corpse.SetSex((byte)GetNativeGender()); corpse.SetClass((byte)GetClass()); corpse.SetCustomizations(m_playerData.Customizations); corpse.SetFlags(flags); @@ -5329,7 +5329,7 @@ namespace Game.Entities public void InitDisplayIds() { - ChrModelRecord model = Global.DB2Mgr.GetChrModel(GetRace(), GetNativeSex()); + ChrModelRecord model = Global.DB2Mgr.GetChrModel(GetRace(), GetNativeGender()); if (model == null) { Log.outError(LogFilter.Player, $"Player {GetGUID()} has incorrect race/gender pair. Can't init display ids."); @@ -7380,8 +7380,8 @@ namespace Game.Entities } } - public Gender GetNativeSex() { return (Gender)(byte)m_playerData.NativeSex; } - public void SetNativeSex(Gender sex) { SetUpdateFieldValue(m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.NativeSex), (byte)sex); } + public Gender GetNativeGender() { return (Gender)(byte)m_playerData.NativeSex; } + public void SetNativeGender(Gender sex) { SetUpdateFieldValue(m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.NativeSex), (byte)sex); } public void SetPvpTitle(byte pvpTitle) { SetUpdateFieldValue(m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.PvpTitle), pvpTitle); } public void SetArenaFaction(byte arenaFaction) { SetUpdateFieldValue(m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.ArenaFaction), arenaFaction); } public void ApplyModFakeInebriation(int mod, bool apply) { ApplyModUpdateFieldValue(m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.FakeInebriation), mod, apply); } diff --git a/Source/Game/Entities/Unit/Unit.cs b/Source/Game/Entities/Unit/Unit.cs index 97584a439..7e158cccb 100644 --- a/Source/Game/Entities/Unit/Unit.cs +++ b/Source/Game/Entities/Unit/Unit.cs @@ -1203,7 +1203,7 @@ namespace Game.Entities } } - ShapeshiftFormModelData formModelData = Global.DB2Mgr.GetShapeshiftFormModelData(GetRace(), thisPlayer.GetNativeSex(), form); + ShapeshiftFormModelData formModelData = Global.DB2Mgr.GetShapeshiftFormModelData(GetRace(), thisPlayer.GetNativeGender(), form); if (formModelData != null) { bool useRandom = false; @@ -1698,6 +1698,9 @@ namespace Game.Entities public Gender GetGender() { return (Gender)(byte)m_unitData.Sex; } public void SetGender(Gender sex) { SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.Sex), (byte)sex); } + public virtual Gender GetNativeGender() { return GetGender(); } + public virtual void SetNativeGender(Gender gender) { SetGender(gender); } + public uint GetDisplayId() { return m_unitData.DisplayID; } public virtual void SetDisplayId(uint modelId, float displayScale = 1f) { diff --git a/Source/Game/Guilds/Guild.cs b/Source/Game/Guilds/Guild.cs index 2fe489190..4247d84c4 100644 --- a/Source/Game/Guilds/Guild.cs +++ b/Source/Game/Guilds/Guild.cs @@ -2510,7 +2510,7 @@ namespace Game.Guilds m_name = player.GetName(); m_level = (byte)player.GetLevel(); m_class = player.GetClass(); - _gender = player.GetNativeSex(); + _gender = player.GetNativeGender(); m_zoneId = player.GetZoneId(); m_accountId = player.GetSession().GetAccountId(); m_achievementPoints = player.GetAchievementPoints(); diff --git a/Source/Game/Handlers/CharacterHandler.cs b/Source/Game/Handlers/CharacterHandler.cs index 8003bc733..f578f20a8 100644 --- a/Source/Game/Handlers/CharacterHandler.cs +++ b/Source/Game/Handlers/CharacterHandler.cs @@ -559,7 +559,7 @@ namespace Game { Log.outInfo(LogFilter.Player, "Account: {0} (IP: {1}) Create Character: {2} {3}", GetAccountId(), GetRemoteAddress(), createInfo.Name, newChar.GetGUID().ToString()); Global.ScriptMgr.OnPlayerCreate(newChar); - Global.CharacterCacheStorage.AddCharacterCacheEntry(newChar.GetGUID(), GetAccountId(), newChar.GetName(), (byte)newChar.GetNativeSex(), (byte)newChar.GetRace(), (byte)newChar.GetClass(), (byte)newChar.GetLevel(), false); + Global.CharacterCacheStorage.AddCharacterCacheEntry(newChar.GetGUID(), GetAccountId(), newChar.GetName(), (byte)newChar.GetNativeGender(), (byte)newChar.GetRace(), (byte)newChar.GetClass(), (byte)newChar.GetLevel(), false); SendCharCreate(ResponseCodes.CharCreateSuccess, newChar.GetGUID()); } @@ -1379,9 +1379,9 @@ namespace Game _player.ModifyMoney(-cost); _player.UpdateCriteria(CriteriaType.MoneySpentAtBarberShop, (ulong)cost); - if (_player.GetNativeSex() != (Gender)packet.NewSex) + if (_player.GetNativeGender() != (Gender)packet.NewSex) { - _player.SetNativeSex((Gender)packet.NewSex); + _player.SetNativeGender((Gender)packet.NewSex); _player.InitDisplayIds(); _player.RestoreDisplayId(false); } diff --git a/Source/Game/Networking/Packets/InspectPackets.cs b/Source/Game/Networking/Packets/InspectPackets.cs index 8cbc67a68..e15b3cd79 100644 --- a/Source/Game/Networking/Packets/InspectPackets.cs +++ b/Source/Game/Networking/Packets/InspectPackets.cs @@ -233,7 +233,7 @@ namespace Game.Networking.Packets GUID = player.GetGUID(); SpecializationID = player.GetPrimarySpecialization(); Name = player.GetName(); - GenderID = (byte)player.GetNativeSex(); + GenderID = (byte)player.GetNativeGender(); Race = (byte)player.GetRace(); ClassID = (byte)player.GetClass(); diff --git a/Source/Game/Networking/Packets/QueryPackets.cs b/Source/Game/Networking/Packets/QueryPackets.cs index 3e96e8a10..936b01ca0 100644 --- a/Source/Game/Networking/Packets/QueryPackets.cs +++ b/Source/Game/Networking/Packets/QueryPackets.cs @@ -616,7 +616,7 @@ namespace Game.Networking.Packets BnetAccountID = player.GetSession().GetBattlenetAccountGUID(); Name = player.GetName(); RaceID = player.GetRace(); - Sex = player.GetNativeSex(); + Sex = player.GetNativeGender(); ClassID = player.GetClass(); Level = (byte)player.GetLevel(); diff --git a/Source/Game/Spells/Auras/AuraEffect.cs b/Source/Game/Spells/Auras/AuraEffect.cs index e2c8422ae..98a55d46e 100644 --- a/Source/Game/Spells/Auras/AuraEffect.cs +++ b/Source/Game/Spells/Auras/AuraEffect.cs @@ -1380,6 +1380,7 @@ namespace Game.Spells // special case (spell specific functionality) if (GetMiscValue() == 0) { + bool isFemale = target.GetNativeGender() == Gender.Female; switch (GetId()) { // Orb of Deception @@ -1392,43 +1393,43 @@ namespace Game.Spells { // Blood Elf case Race.BloodElf: - target.SetDisplayId(target.GetGender() == Gender.Female ? 17830 : 17829u); + target.SetDisplayId(isFemale ? 17830 : 17829u); break; // Orc case Race.Orc: - target.SetDisplayId(target.GetGender() == Gender.Female ? 10140 : 10139u); + target.SetDisplayId(isFemale ? 10140 : 10139u); break; // Troll case Race.Troll: - target.SetDisplayId(target.GetGender() == Gender.Female ? 10134 : 10135u); + target.SetDisplayId(isFemale ? 10134 : 10135u); break; // Tauren case Race.Tauren: - target.SetDisplayId(target.GetGender() == Gender.Female ? 10147 : 10136u); + target.SetDisplayId(isFemale ? 10147 : 10136u); break; // Undead case Race.Undead: - target.SetDisplayId(target.GetGender() == Gender.Female ? 10145 : 10146u); + target.SetDisplayId(isFemale ? 10145 : 10146u); break; // Draenei case Race.Draenei: - target.SetDisplayId(target.GetGender() == Gender.Female ? 17828 : 17827u); + target.SetDisplayId(isFemale ? 17828 : 17827u); break; // Dwarf case Race.Dwarf: - target.SetDisplayId(target.GetGender() == Gender.Female ? 10142 : 10141u); + target.SetDisplayId(isFemale ? 10142 : 10141u); break; // Gnome case Race.Gnome: - target.SetDisplayId(target.GetGender() == Gender.Female ? 10149 : 10148u); + target.SetDisplayId(isFemale ? 10149 : 10148u); break; // Human case Race.Human: - target.SetDisplayId(target.GetGender() == Gender.Female ? 10138 : 10137u); + target.SetDisplayId(isFemale ? 10138 : 10137u); break; // Night Elf case Race.NightElf: - target.SetDisplayId(target.GetGender() == Gender.Female ? 10144 : 10143u); + target.SetDisplayId(isFemale ? 10144 : 10143u); break; default: break; @@ -1451,43 +1452,43 @@ namespace Game.Spells { // Blood Elf case Race.BloodElf: - target.SetDisplayId(target.GetGender() == Gender.Female ? 25043 : 25032u); + target.SetDisplayId(isFemale ? 25043 : 25032u); break; // Orc case Race.Orc: - target.SetDisplayId(target.GetGender() == Gender.Female ? 25050 : 25039u); + target.SetDisplayId(isFemale ? 25050 : 25039u); break; // Troll case Race.Troll: - target.SetDisplayId(target.GetGender() == Gender.Female ? 25052 : 25041u); + target.SetDisplayId(isFemale ? 25052 : 25041u); break; // Tauren case Race.Tauren: - target.SetDisplayId(target.GetGender() == Gender.Female ? 25051 : 25040u); + target.SetDisplayId(isFemale ? 25051 : 25040u); break; // Undead case Race.Undead: - target.SetDisplayId(target.GetGender() == Gender.Female ? 25053 : 25042u); + target.SetDisplayId(isFemale ? 25053 : 25042u); break; // Draenei case Race.Draenei: - target.SetDisplayId(target.GetGender() == Gender.Female ? 25044 : 25033u); + target.SetDisplayId(isFemale ? 25044 : 25033u); break; // Dwarf case Race.Dwarf: - target.SetDisplayId(target.GetGender() == Gender.Female ? 25045 : 25034u); + target.SetDisplayId(isFemale ? 25045 : 25034u); break; // Gnome case Race.Gnome: - target.SetDisplayId(target.GetGender() == Gender.Female ? 25035 : 25046u); + target.SetDisplayId(isFemale ? 25035 : 25046u); break; // Human case Race.Human: - target.SetDisplayId(target.GetGender() == Gender.Female ? 25037 : 25048u); + target.SetDisplayId(isFemale ? 25037 : 25048u); break; // Night Elf case Race.NightElf: - target.SetDisplayId(target.GetGender() == Gender.Female ? 25038 : 25049u); + target.SetDisplayId(isFemale ? 25038 : 25049u); break; default: break; @@ -1501,15 +1502,15 @@ namespace Game.Spells // Honor the Dead case 65386: case 65495: - target.SetDisplayId(target.GetGender() == Gender.Male ? 29203 : 29204u); + target.SetDisplayId(isFemale ? 29204 : 29203u); break; // Darkspear Pride case 75532: - target.SetDisplayId(target.GetGender() == Gender.Male ? 31737 : 31738u); + target.SetDisplayId(isFemale ? 31738 : 31737u); break; // Gnomeregan Pride case 75531: - target.SetDisplayId(target.GetGender() == Gender.Male ? 31654 : 31655u); + target.SetDisplayId(isFemale ? 31655 : 31654u); break; default: break; diff --git a/Source/Game/Spells/SpellManager.cs b/Source/Game/Spells/SpellManager.cs index 5df0dd1d5..82f5404d8 100644 --- a/Source/Game/Spells/SpellManager.cs +++ b/Source/Game/Spells/SpellManager.cs @@ -3270,7 +3270,8 @@ namespace Game.Entities 58121, // Torch 43109, // Throw Torch 58552, // Return to Orgrimmar - 58533 // Return to Stormwind + 58533, // Return to Stormwind + 21855 // Challenge Flag }, spellInfo => { spellInfo.MaxAffectedTargets = 1; @@ -4860,7 +4861,7 @@ namespace Game.Entities public bool IsFitToRequirements(Player player, uint newZone, uint newArea) { if (gender != Gender.None) // not in expected gender - if (player == null || gender != player.GetGender()) + if (player == null || gender != player.GetNativeGender()) return false; if (raceMask != 0) // not in expected race diff --git a/Source/Scripts/Spells/Generic.cs b/Source/Scripts/Spells/Generic.cs index cb75a0cea..0580cb081 100644 --- a/Source/Scripts/Spells/Generic.cs +++ b/Source/Scripts/Spells/Generic.cs @@ -758,7 +758,7 @@ namespace Scripts.Spells.Generic Unit target = GetTarget(); if (target.IsTypeId(TypeId.Player)) { - if (target.GetGender() == Gender.Male) + if (target.GetNativeGender() == Gender.Male) target.SetDisplayId(ModelIds.GoblinMale); else target.SetDisplayId(ModelIds.GoblinFemale); @@ -1348,7 +1348,7 @@ namespace Scripts.Spells.Generic Player player = GetHitPlayer(); if (player) { - Gender gender = player.GetGender(); + Gender gender = player.GetNativeGender(); uint spellId = GetSpellInfo().Id; switch (spellId) @@ -2240,7 +2240,7 @@ namespace Scripts.Spells.Generic Player target = GetHitPlayer(); if (target) { - Gender gender = target.GetGender(); + Gender gender = target.GetNativeGender(); if (gender == Gender.Male) caster.CastSpell(target, SpellIds.OrcDisguiseMale, true); else diff --git a/Source/Scripts/Spells/Holiday.cs b/Source/Scripts/Spells/Holiday.cs index 49ea7bf30..d93199faf 100644 --- a/Source/Scripts/Spells/Holiday.cs +++ b/Source/Scripts/Spells/Holiday.cs @@ -233,7 +233,7 @@ namespace Scripts.Spells.Holiday Player target = GetHitPlayer(); if (target) { - Gender gender = target.GetGender(); + Gender gender = target.GetNativeGender(); uint spellId = SpellIds.TrickBuff; switch (RandomHelper.URand(0, 5)) { @@ -327,7 +327,7 @@ namespace Scripts.Spells.Holiday Unit target = GetHitUnit(); uint spellId; - bool female = target.GetGender() == Gender.Female; + bool female = target.GetNativeGender() == Gender.Female; switch (GetSpellInfo().Id) { diff --git a/Source/Scripts/Spells/Items.cs b/Source/Scripts/Spells/Items.cs index f8ba14c34..8316b274d 100644 --- a/Source/Scripts/Spells/Items.cs +++ b/Source/Scripts/Spells/Items.cs @@ -1739,9 +1739,9 @@ namespace Scripts.Spells.Items switch (RandomHelper.URand(1, 2)) { // Flip Out - ninja - case 1: spellId = (caster.GetGender() == Gender.Male ? SpellIds.FlipOutMale : SpellIds.FlipOutFemale); break; + case 1: spellId = (caster.GetNativeGender() == Gender.Male ? SpellIds.FlipOutMale : SpellIds.FlipOutFemale); break; // Yaaarrrr - pirate - case 2: spellId = (caster.GetGender() == Gender.Male ? SpellIds.YaaarrrrMale : SpellIds.YaaarrrrFemale); break; + case 2: spellId = (caster.GetNativeGender() == Gender.Male ? SpellIds.YaaarrrrMale : SpellIds.YaaarrrrFemale); break; } caster.CastSpell(caster, spellId, true); } @@ -3186,7 +3186,7 @@ namespace Scripts.Spells.Items if (target) { target.HandleEmoteCommand(Emote.OneshotTrain); - EmotesTextSoundRecord soundEntry = Global.DB2Mgr.GetTextSoundEmoteFor((uint)TextEmotes.Train, target.GetRace(), target.GetGender(), target.GetClass()); + EmotesTextSoundRecord soundEntry = Global.DB2Mgr.GetTextSoundEmoteFor((uint)TextEmotes.Train, target.GetRace(), target.GetNativeGender(), target.GetClass()); if (soundEntry != null) target.PlayDistanceSound(soundEntry.SoundId); } diff --git a/Source/Scripts/Spells/Quest.cs b/Source/Scripts/Spells/Quest.cs index 3d83840b7..ba93f9eec 100644 --- a/Source/Scripts/Spells/Quest.cs +++ b/Source/Scripts/Spells/Quest.cs @@ -820,7 +820,7 @@ namespace Scripts.Spells.Quest Player target = GetHitPlayer(); if (target) { - target.CastSpell(target, target.GetGender() == Gender.Male ? SpellIds.MaleDisguise : SpellIds.FemaleDisguise, true); + target.CastSpell(target, target.GetNativeGender() == Gender.Male ? SpellIds.MaleDisguise : SpellIds.FemaleDisguise, true); target.CastSpell(target, SpellIds.GenericDisguise, true); } } diff --git a/Source/Scripts/World/GameObject.cs b/Source/Scripts/World/GameObject.cs index 1beee5f5a..3d11418e5 100644 --- a/Source/Scripts/World/GameObject.cs +++ b/Source/Scripts/World/GameObject.cs @@ -914,7 +914,7 @@ namespace Scripts.World.GameObjects Creature target = ScriptedAI.GetClosestCreatureWithEntry(player, CreatureIds.OuthouseBunny, 3.0f); if (target) { - target.GetAI().SetData(1, (uint)player.GetGender()); + target.GetAI().SetData(1, (uint)player.GetNativeGender()); me.CastSpell(target, SpellIds.IndisposedIii); } me.CastSpell(player, SpellIds.Indisposed);