diff --git a/src/const.h b/src/const.h index 031c372..58aa0de 100644 --- a/src/const.h +++ b/src/const.h @@ -242,7 +242,14 @@ enum PartyShields_t : uint8_t { SHIELD_WHITEYELLOW = 1, SHIELD_WHITEBLUE = 2, SHIELD_BLUE = 3, - SHIELD_YELLOW = 4 + SHIELD_YELLOW = 4, + SHIELD_BLUE_SHAREDEXP = 5, + SHIELD_YELLOW_SHAREDEXP = 6, + SHIELD_BLUE_NOSHAREDEXP_BLINK = 7, + SHIELD_YELLOW_NOSHAREDEXP_BLINK = 8, + SHIELD_BLUE_NOSHAREDEXP = 9, + SHIELD_YELLOW_NOSHAREDEXP = 10, + SHIELD_GRAY = 11, }; enum item_t : uint16_t { diff --git a/src/player.cpp b/src/player.cpp index 6e6afcd..87f06e0 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -3678,10 +3678,34 @@ PartyShields_t Player::getPartyShield(const Player* player) const if (party) { if (party->getLeader() == player) { + if (party->isSharedExperienceActive()) { + if (party->isSharedExperienceEnabled()) { + return SHIELD_YELLOW_SHAREDEXP; + } + + if (party->canUseSharedExperience(player)) { + return SHIELD_YELLOW_NOSHAREDEXP; + } + + return SHIELD_YELLOW_NOSHAREDEXP_BLINK; + } + return SHIELD_YELLOW; } if (player->party == party) { + if (party->isSharedExperienceActive()) { + if (party->isSharedExperienceEnabled()) { + return SHIELD_BLUE_SHAREDEXP; + } + + if (party->canUseSharedExperience(player)) { + return SHIELD_BLUE_NOSHAREDEXP; + } + + return SHIELD_BLUE_NOSHAREDEXP_BLINK; + } + return SHIELD_BLUE; }