def requestEffect(self):
        if not self.air.newsManager.isHolidayRunning(self.holiday):
            return

        avId = self.air.getAvatarIdFromSender()
        av = self.air.doId2do.get(avId)

        if not av:
            return

        holidayInfo = HolidayGlobals.getHoliday(self.holiday)
        expireTime = int(
            HolidayGlobals.getServerTime(HolidayGlobals.getEndDate(holidayInfo) + datetime.timedelta(days=1)) / 60
        )

        if "scavengerHunt" in holidayInfo:
            scavengerHunt = av.getScavengerHunt()

            if self.zoneId in scavengerHunt:
                self.sendUpdateToAvatarId(avId, "effectDone", [0])
            else:
                scavengerHunt.append(self.zoneId)
                av.b_setScavengerHunt(scavengerHunt)
                av.addMoney(HolidayGlobals.CAROLING_REWARD)
                self.sendUpdateToAvatarId(avId, "effectDone", [HolidayGlobals.CAROLING_REWARD])

            if len(scavengerHunt) == HolidayGlobals.SCAVENGER_HUNT_LOCATIONS:
                av.b_setCheesyEffect(self.effectId, 0, expireTime)
        else:
            av.b_setCheesyEffect(self.effectId, 0, expireTime)
            self.sendUpdateToAvatarId(avId, "effectDone", [0])