Jump to content

DonTomika

Members
  • Posts

    22
  • Joined

  • Last visited

    Never
  • Donations

    0.00 GBP 

DonTomika's Achievements

Member

Member (2/3)

0

Reputation

  1. There is a spell for this (http://www.wowhead.com/spell=63058), which should be linked with barkskin if the glyph is active. A bit 'hacky', but working patch: diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index be54aa6..95c351c 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -4662,7 +4662,28 @@ void Aura::HandleAuraProcTriggerSpell(bool apply, bool Real) case 28200: // Ascendance (Talisman of Ascendance trinket) SetAuraCharges(6); break; - default: break; + case 22812: // Barkskin + { + // Linked spell - only if 63057 is active + if (m_target->HasAura(63057, EFFECT_INDEX_0)) + m_target->CastSpell(GetCaster(), 63058, true, NULL, NULL, GetCasterGUID()); + break; + } + default: + break; + } + } + else + { + switch (GetId()) + { + case 22812: // Barkskin + { + m_target->RemoveAurasDueToSpell(63058); + break; + } + default: + break; } } }
  2. What bug does the patch fix? What features does the patch add? This patch should fix spell #31944 used by Archimonde. For which repository revision was the patch created? 8220 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. Didn't find any. diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index b791240..e715b53 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -1618,8 +1618,13 @@ void Aura::TriggerSpell() } // // Bloodmyst Tesla // case 31611: break; -// // Doomfire -// case 31944: break; + // Doomfire + case 31944: + { + int32 damage = m_modifier.m_amount * ((float)(GetAuraDuration() + m_modifier.periodictime) / GetAuraMaxDuration()); + target->CastCustomSpell(target, 31969, &damage, 0, 0, true, NULL, NULL, 0); + return; + } // // Teleport Test // case 32236: break; // // Earthquake
  3. What bug does the patch fix? What features does the patch add? This patch fixes the bug that overhealing doesn't displayed in the combat log. For which repository revision was the patch created? 7966 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. Didn't find any. diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 4b693b4..a79c1d0 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -7562,9 +7562,10 @@ int32 Unit::DealHeal(Unit *pVictim, uint32 addhealth, SpellEntry const *spellPro { int32 gain = pVictim->ModifyHealth(int32(addhealth)); - if (GetTypeId()==TYPEID_PLAYER) + if (GetTypeId() == TYPEID_PLAYER) { - SendHealSpellLog(pVictim, spellProto->Id, addhealth, critical); + // gain is always <= addhealth + SendHealSpellLog(pVictim, spellProto->Id, addhealth, addhealth - gain, critical); if (BattleGround *bg = ((Player*)this)->GetBattleGround()) bg->UpdatePlayerScore((Player*)this, SCORE_HEALING_DONE, gain); @@ -7613,7 +7614,7 @@ Unit* Unit::SelectMagnetTarget(Unit *victim, SpellEntry const *spellInfo) return victim; } -void Unit::SendHealSpellLog(Unit *pVictim, uint32 SpellID, uint32 Damage, bool critical) +void Unit::SendHealSpellLog(Unit *pVictim, uint32 SpellID, uint32 Damage, uint32 OverHeal, bool critical) { // we guess size WorldPacket data(SMSG_SPELLHEALLOG, (8+8+4+4+1)); @@ -7621,7 +7622,7 @@ void Unit::SendHealSpellLog(Unit *pVictim, uint32 SpellID, uint32 Damage, bool c data.append(GetPackGUID()); data << uint32(SpellID); data << uint32(Damage); - data << uint32(0); // over healing? + data << uint32(OverHeal); data << uint8(critical ? 1 : 0); data << uint8(0); // unused in client? SendMessageToSet(&data, true); diff --git a/src/game/Unit.h b/src/game/Unit.h index d6dac29..482a59d 100644 --- a/src/game/Unit.h +++ b/src/game/Unit.h @@ -1117,7 +1117,7 @@ class MANGOS_DLL_SPEC Unit : public WorldObject virtual bool IsUnderWater() const; bool isInAccessablePlaceFor(Creature const* c) const; - void SendHealSpellLog(Unit *pVictim, uint32 SpellID, uint32 Damage, bool critical = false); + void SendHealSpellLog(Unit *pVictim, uint32 SpellID, uint32 Damage, uint32 OverHeal, bool critical = false); void SendEnergizeSpellLog(Unit *pVictim, uint32 SpellID, uint32 Damage,Powers powertype); uint32 SpellNonMeleeDamageLog(Unit *pVictim, uint32 spellID, uint32 damage); void CastSpell(Unit* Victim, uint32 spellId, bool triggered, Item *castItem = NULL, Aura* triggeredByAura = NULL, uint64 originalCaster = 0);
  4. What bug does the patch fix? What features does the patch add? This patch should fix Glyph of Drain Soul, and also change the text displayed on the client when you create a soul shard from "You receive item: [soul Shard]" to "You create: [soul Shard]" - it's looks a bit silly when the spell procs and you see in the chat, and it's not blizzlike.For which repository revision was the patch created? 7966 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. Didn't find any. diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 1c3cf83..0cde5f8 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -2971,11 +2971,19 @@ void Aura::HandleChannelDeathItem(bool apply, bool Real) if(spellInfo->EffectItemType[m_effIndex] == 0) return; - // Soul Shard only from non-grey units - if( spellInfo->EffectItemType[m_effIndex] == 6265 && - (victim->getLevel() <= MaNGOS::XP::GetGrayLevel(caster->getLevel()) || - victim->GetTypeId()==TYPEID_UNIT && !((Player*)caster)->isAllowedToLoot((Creature*)victim)) ) - return; + // Soul Shard + if (spellInfo->EffectItemType[m_effIndex] == 6265) + { + // Only from non-grey units + if ((victim->getLevel() <= MaNGOS::XP::GetGrayLevel(caster->getLevel()) || + victim->GetTypeId() == TYPEID_UNIT && !((Player*)caster)->isAllowedToLoot((Creature*)victim))) + return; + + // Glyph of Soul Shard + if ((caster->HasAura(58070)) && (roll_chance_i(5))) + caster->CastSpell(caster, 58068, true, NULL, NULL, 0); + } + //Adding items uint32 noSpaceForCount = 0; uint32 count = m_modifier.m_amount; @@ -2991,7 +2999,7 @@ void Aura::HandleChannelDeathItem(bool apply, bool Real) } Item* newitem = ((Player*)caster)->StoreNewItem(dest, spellInfo->EffectItemType[m_effIndex], true); - ((Player*)caster)->SendNewItem(newitem, count, true, false); + ((Player*)caster)->SendNewItem(newitem, count, true, true); } } Note that we don't know the real proc chance on offi, but according to the comments posted on wowhead it's somewhere around 5%.
  5. What bug does the patch fix? What features does the patch add? This patch should fix two spells: Sated (57724) and Exhaustion (57723). These spells are only checked clientside, so they only prevent casting Bloodlust or Heroism, but does not prevent players from getting the Bloodlust/Heroism buffs. For example, when there are more than one shamans in a group, Shaman_A can go offline while Shaman_B casts bloodlust. 40 seconds later Shaman_A casts bloodlust too, and everyone in the group gets the haste buff again. For which repository revision was the patch created? 7966 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. Didn't find any. diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 34332c6..2c986b0 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -5447,6 +5447,11 @@ bool Spell::CheckTarget( Unit* target, uint32 eff ) return false; } + // Check Sated & Exhaustion debuffs + if (((m_spellInfo->Id == 2825) && (target->HasAura(57724))) || + ((m_spellInfo->Id == 32182) && (target->HasAura(57723)))) + return false; + //Check targets for LOS visibility (except spells without range limitations ) switch(m_spellInfo->Effect[eff]) { I used hardcoded spell ids, because this patch should only affect 2 spells (no ranks and others), and as far as I know, they should not affect each other (so when a mage gets bloodlust & sated, and later he spellsteals a heroism buff, he should be able to benefit from both buffs). They could be checked with "((m_spellInfo->SpellFamilyName == SPELLFAMILY_SHAMAN) && (m_spellInfo->SpellFamilyFlags == 64))", and a SpellIconID check, but I think it would be too slow and complicated for a simple fix like this.
  6. What bug does the patch fix? What features does the patch add? This patch implements two glyph spells: Glyph of Fear and Glyph of Entangling Roots. For which repository revision was the patch created? 7842 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. Didn't find any. diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 7f150e1..f6f56e5 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -355,13 +355,31 @@ bool Unit::HasAuraType(AuraType auraType) const } /* Called by DealDamage for auras that have a chance to be dispelled on damage taken. */ -void Unit::RemoveSpellbyDamageTaken(AuraType auraType, uint32 damage) +void Unit::RemoveSpellbyDamageTaken(AuraType auraType, uint32 damage, Unit *pCaster) { + if (!pCaster) + return; + if(!HasAuraType(auraType)) return; // The chance to dispel an aura depends on the damage taken with respect to the casters level. - uint32 max_dmg = getLevel() > 8 ? 25 * getLevel() - 150 : 50; + uint32 max_dmg = pCaster->getLevel() > 8 ? 25 * getLevel() - 150 : 50; + + // Glyph of Fear and Glyph of Entangling Roots bonus + if (pCaster->GetTypeId() == TYPEID_PLAYER) + { + AuraList const& m_OverrideClassScript = pCaster->GetAurasByType(SPELL_AURA_OVERRIDE_CLASS_SCRIPTS); + for (AuraList::const_iterator citr = m_OverrideClassScript.begin(); citr != m_OverrideClassScript.end(); ++citr) + { + if ((*citr)->GetModifier()->m_miscvalue == 7801) + { + max_dmg = int32(max_dmg * (100.0f + (*citr)->GetModifier()->m_amount) / 100.0f); + break; + } + } + } + float chance = float(damage) / max_dmg * 100.0f; if (roll_chance_f(chance)) RemoveSpellsCausingAura(auraType); @@ -431,10 +449,10 @@ uint32 Unit::DealDamage(Unit *pVictim, uint32 damage, CleanDamage const* cleanDa return 0; } if (!spellProto || !IsAuraAddedBySpell(SPELL_AURA_MOD_FEAR, spellProto->Id)) - pVictim->RemoveSpellbyDamageTaken(SPELL_AURA_MOD_FEAR, damage); + pVictim->RemoveSpellbyDamageTaken(SPELL_AURA_MOD_FEAR, damage, this); // root type spells do not dispel the root effect if (!spellProto || !(spellProto->Mechanic == MECHANIC_ROOT || IsAuraAddedBySpell(SPELL_AURA_MOD_ROOT, spellProto->Id))) - pVictim->RemoveSpellbyDamageTaken(SPELL_AURA_MOD_ROOT, damage); + pVictim->RemoveSpellbyDamageTaken(SPELL_AURA_MOD_ROOT, damage, this); // no xp,health if type 8 /critters/ if(pVictim->GetTypeId() != TYPEID_PLAYER && pVictim->GetCreatureType() == CREATURE_TYPE_CRITTER) diff --git a/src/game/Unit.h b/src/game/Unit.h index 35ceb2f..c3cc85f 100644 --- a/src/game/Unit.h +++ b/src/game/Unit.h @@ -1042,7 +1042,7 @@ class MANGOS_DLL_SPEC Unit : public WorldObject bool isFrozen() const; - void RemoveSpellbyDamageTaken(AuraType auraType, uint32 damage); + void RemoveSpellbyDamageTaken(AuraType auraType, uint32 damage, Unit *pCaster); bool isTargetableForAttack() const; virtual bool IsInWater() const;
  7. What bug does the patch fix? What features does the patch add? This patch should fix the bug that Fire Shield (warlock) and Fire Ward (mage) doesn't stack. For which repository revision was the patch created? 7842 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. Didn't find any. diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp index 5b7ba08..8d65d39 100644 --- a/src/game/SpellMgr.cpp +++ b/src/game/SpellMgr.cpp @@ -1263,6 +1263,11 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2) cons if( spellInfo_1->Id == 11129 && spellInfo_2->SpellIconID == 33 && spellInfo_2->SpellVisual[0] == 321 ) return false; + // Fire Ward and Fire Shield (multi-family check) + if ((spellInfo_1->SpellIconID == 16) && (spellInfo_1->SpellFamilyFlags & 0x0000000000000008LL) && + (spellInfo_2->SpellIconID == 16) && (spellInfo_2->SpellFamilyName == SPELLFAMILY_WARLOCK)) + return false; + break; case SPELLFAMILY_WARLOCK: if( spellInfo_2->SpellFamilyName == SPELLFAMILY_WARLOCK ) @@ -1291,6 +1296,12 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2) cons // Detect Invisibility and Mana Shield (multi-family check) if( spellInfo_1->Id == 132 && spellInfo_2->SpellIconID == 209 && spellInfo_2->SpellVisual[0] == 968 ) return false; + + // Fire Shield and Fire Ward (multi-family check) + if ((spellInfo_1->SpellIconID == 16) && + (spellInfo_2->SpellIconID == 16) && (spellInfo_2->SpellFamilyFlags & 0x0000000000000008LL)) + return false; + break; case SPELLFAMILY_WARRIOR: if( spellInfo_2->SpellFamilyName == SPELLFAMILY_WARRIOR )
  8. What bug does the patch fix? What features does the patch add? This patch should fix the bug when a hunter / warlock enters GM mode while he is in combat, and have a pet active, the mob will start attacking the pet instead of evading and running back to its original position (what it does if no pets are active). For which repository revision was the patch created? 7839 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. Didn't find any. diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 3d567d8..7eb47c7 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -2073,11 +2073,17 @@ void Player::SetGameMaster(bool on) setFaction(35); SetFlag(PLAYER_FLAGS, PLAYER_FLAGS_GM); + if (Pet* pet = GetPet()) + { + pet->setFaction(35); + pet->getHostilRefManager().setOnlineOfflineState(false); + } + RemoveByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_FFA_PVP); ResetContestedPvP(); getHostilRefManager().setOnlineOfflineState(false); - CombatStop(); + CombatStopWithPets(); SetPhaseMask(PHASEMASK_ANYWHERE,false); // see and visible in all phases } @@ -2091,6 +2097,12 @@ void Player::SetGameMaster(bool on) setFactionForRace(getRace()); RemoveFlag(PLAYER_FLAGS, PLAYER_FLAGS_GM); + if (Pet* pet = GetPet()) + { + pet->setFaction(getFaction()); + pet->getHostilRefManager().setOnlineOfflineState(true); + } + // restore FFA PvP Server state if(sWorld.IsFFAPvPRealm()) SetByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_FFA_PVP);
  9. What bug does the patch fix? What features does the patch add? This patch implements ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED and ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED. For which repository revision was the patch created? 7809 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. Didn't find any. diff --git a/src/game/AchievementMgr.cpp b/src/game/AchievementMgr.cpp index 6c66204..9ae1b1e 100644 --- a/src/game/AchievementMgr.cpp +++ b/src/game/AchievementMgr.cpp @@ -580,6 +580,8 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui case ACHIEVEMENT_CRITERIA_TYPE_NUMBER_OF_TALENT_RESETS: case ACHIEVEMENT_CRITERIA_TYPE_WIN_DUEL: case ACHIEVEMENT_CRITERIA_TYPE_LOSE_DUEL: + case ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED: + case ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED: case ACHIEVEMENT_CRITERIA_TYPE_QUEST_ABANDONED: case ACHIEVEMENT_CRITERIA_TYPE_FLIGHT_PATHS_TAKEN: case ACHIEVEMENT_CRITERIA_TYPE_ACCEPTED_SUMMONINGS: @@ -1193,8 +1195,6 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui case ACHIEVEMENT_CRITERIA_TYPE_WON_AUCTIONS: case ACHIEVEMENT_CRITERIA_TYPE_LOOT_EPIC_ITEM: case ACHIEVEMENT_CRITERIA_TYPE_RECEIVE_EPIC_ITEM: - case ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED: - case ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED: case ACHIEVEMENT_CRITERIA_TYPE_TOTAL: break; // Not implemented yet } @@ -1351,6 +1351,8 @@ bool AchievementMgr::IsCompletedCriteria(AchievementCriteriaEntry const* achieve case ACHIEVEMENT_CRITERIA_TYPE_GAIN_REVERED_REPUTATION: case ACHIEVEMENT_CRITERIA_TYPE_GAIN_HONORED_REPUTATION: case ACHIEVEMENT_CRITERIA_TYPE_KNOWN_FACTIONS: + case ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED: + case ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED: case ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEALTH: case ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_SPELLPOWER: case ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_ARMOR: diff --git a/src/game/GroupHandler.cpp b/src/game/GroupHandler.cpp index b7c55e6..740d076 100644 --- a/src/game/GroupHandler.cpp +++ b/src/game/GroupHandler.cpp @@ -391,6 +391,16 @@ void WorldSession::HandleLootRoll( WorldPacket &recv_data ) // everything's fine, do it group->CountRollVote(GetPlayer()->GetGUID(), Guid, NumberOfPlayers, Choise); + + switch (Choise) + { + case 1: + GetPlayer()->GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED, 1); + break; + case 2: + GetPlayer()->GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_ROLL_GREED, 1); + break; + } } void WorldSession::HandleMinimapPingOpcode(WorldPacket& recv_data)
  10. What bug does the patch fix? What features does the patch add? This patch should fix ACHIEVEMENT_CRITERIA_TYPE_QUEST_ABANDONED, ACHIEVEMENT_CRITERIA_TYPE_FLIGHT_PATHS_TAKEN and ACHIEVEMENT_CRITERIA_TYPE_ACCEPTED_SUMMONINGS. For which repository revision was the patch created? 7769 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. Couldn't find any. http://paste2.org/p/198102
  11. What bug does the patch fix? What features does the patch add? This patch implements ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_GOLD_VALUE_OWNED. For which repository revision was the patch created? 7763 Is there a thread in the bug report section or at lighthouse? If yes, please add a link to the thread. Couldn't find any. diff --git a/src/game/AchievementMgr.cpp b/src/game/AchievementMgr.cpp index 8d91103..549060d 100644 --- a/src/game/AchievementMgr.cpp +++ b/src/game/AchievementMgr.cpp @@ -1126,6 +1126,12 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui case ACHIEVEMENT_CRITERIA_TYPE_EARN_HONORABLE_KILL: SetCriteriaProgress(achievementCriteria, GetPlayer()->GetUInt32Value(PLAYER_FIELD_LIFETIME_HONORBALE_KILLS)); break; + case ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_GOLD_VALUE_OWNED: + if (miscvalue1) + SetCriteriaProgress(achievementCriteria, miscvalue1, PROGRESS_HIGHEST); + else + SetCriteriaProgress(achievementCriteria, GetPlayer()->GetMoney(), PROGRESS_HIGHEST); + break; // std case: not exist in DBC, not triggered in code as result case ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEALTH: case ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_SPELLPOWER: @@ -1160,7 +1166,6 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui case ACHIEVEMENT_CRITERIA_TYPE_GOLD_EARNED_BY_AUCTIONS: case ACHIEVEMENT_CRITERIA_TYPE_CREATE_AUCTION: case ACHIEVEMENT_CRITERIA_TYPE_WON_AUCTIONS: - case ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_GOLD_VALUE_OWNED: case ACHIEVEMENT_CRITERIA_TYPE_LOOT_EPIC_ITEM: case ACHIEVEMENT_CRITERIA_TYPE_RECEIVE_EPIC_ITEM: case ACHIEVEMENT_CRITERIA_TYPE_ROLL_NEED: @@ -1312,6 +1317,7 @@ bool AchievementMgr::IsCompletedCriteria(AchievementCriteriaEntry const* achieve case ACHIEVEMENT_CRITERIA_TYPE_GOLD_SPENT_FOR_MAIL: case ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_AUCTION_BID: case ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_AUCTION_SOLD: + case ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_GOLD_VALUE_OWNED: case ACHIEVEMENT_CRITERIA_TYPE_GAIN_REVERED_REPUTATION: case ACHIEVEMENT_CRITERIA_TYPE_GAIN_HONORED_REPUTATION: case ACHIEVEMENT_CRITERIA_TYPE_KNOWN_FACTIONS: diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 5076764..c6a1897 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -13380,6 +13380,8 @@ void Player::MoneyChanged( uint32 count ) } } } + + GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_GOLD_VALUE_OWNED, count); } void Player::ReputationChanged(FactionEntry const* factionEntry )
  12. Losing a duel only raises the counter in the statistics panel, but if you win you get the achievement Duel-icious too.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use