aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities
diff options
context:
space:
mode:
authorMitchesD <majklprofik@seznam.cz>2015-10-17 18:38:31 +0200
committerCarbenium <carbenium@outlook.com>2015-11-07 00:35:24 +0100
commit63f253e95ca801966077282f27767cf1d191bfec (patch)
tree331e2bc4061ba8f1cd302e605fc55b6dd00b3fff /src/server/game/Entities
parent8ceffaef4419d6dffe70ccc2fee1a4d5180ea546 (diff)
Merge pull request #15697 from ShinDarth/cd
Core/Player rewritten duel CD reset system (cherry picked from commit 4204805d47078abf54e8a1c50321e63193a7c68d) Conflicts: src/server/game/Spells/SpellHistory.cpp src/server/game/Spells/SpellHistory.h src/server/game/World/World.h
Diffstat (limited to 'src/server/game/Entities')
-rw-r--r--src/server/game/Entities/Player/Player.cpp15
-rw-r--r--src/server/game/Entities/Player/Player.h6
2 files changed, 6 insertions, 15 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index ee45cb5bfba..b03532a5975 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -7474,18 +7474,13 @@ void Player::DuelComplete(DuelCompleteType type)
duel->opponent->SetGuidValue(PLAYER_DUEL_ARBITER, ObjectGuid::Empty);
duel->opponent->SetUInt32Value(PLAYER_DUEL_TEAM, 0);
- if (sWorld->getBoolConfig(CONFIG_RESET_COOLDOWN_AFTER_DUEL) &&
- type != DUEL_INTERRUPTED)
+ if (sWorld->getBoolConfig(CONFIG_RESET_DUEL_COOLDOWNS))
{
- if (!HasCoolDownBeforeDuel())
- RemoveArenaSpellCooldowns(true);
- else
- ChatHandler(GetSession()).PSendSysMessage(LANG_COOLDOWN_NOT_RESET_AFTER_DUEL);
+ RemoveArenaSpellCooldowns(true);
+ duel->opponent->RemoveArenaSpellCooldowns(true);
- if (!duel->opponent->HasCoolDownBeforeDuel())
- duel->opponent->RemoveArenaSpellCooldowns(true);
- else
- ChatHandler(duel->opponent->GetSession()).PSendSysMessage(LANG_COOLDOWN_NOT_RESET_AFTER_DUEL);
+ GetSpellHistory()->RestoreCooldownStateAfterDuel();
+ duel->opponent->GetSpellHistory()->RestoreCooldownStateAfterDuel();
}
delete duel->opponent->duel;
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 1f7dd0549a1..3a1ae5a59c5 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -420,7 +420,7 @@ struct PvPInfo
struct DuelInfo
{
- DuelInfo() : initiator(NULL), opponent(NULL), startTimer(0), startTime(0), outOfBound(0), isMounted(false), hasCoolDownBeforeDuel(false) { }
+ DuelInfo() : initiator(NULL), opponent(NULL), startTimer(0), startTime(0), outOfBound(0), isMounted(false) { }
Player* initiator;
Player* opponent;
@@ -428,7 +428,6 @@ struct DuelInfo
time_t startTime;
time_t outOfBound;
bool isMounted;
- bool hasCoolDownBeforeDuel;
};
struct Areas
@@ -2190,9 +2189,6 @@ class Player : public Unit, public GridObject<Player>
bool RewardHonor(Unit* victim, uint32 groupsize, int32 honor = -1, bool pvptoken = false);
uint32 GetMaxPersonalArenaRatingRequirement(uint32 minarenaslot) const;
- bool HasCoolDownBeforeDuel() const { return duel->hasCoolDownBeforeDuel; }
- void UpdateHasCoolDownBeforeDuel() { duel->hasCoolDownBeforeDuel = GetSpellHistory()->GetArenaCooldownsSize() > 0; }
-
//End of PvP System
void SetDrunkValue(uint8 newDrunkValue, uint32 itemId = 0);