def grant_reward(self): if not self.is_valid: return if hasattr(self, "game_attendance") and self.game_attendance and \ hasattr(self.game_attendance, "attending_character") and self.game_attendance.attending_character: character = self.game_attendance.attending_character else: return journals_until_improvement = Journal.get_num_journals_until_improvement( character) if not self.is_downtime and journals_until_improvement <= 0: reward = Reward(relevant_game=self.game_attendance.relevant_game, rewarded_character=character, rewarded_player=character.player, is_improvement=True, is_journal=True) reward.save() else: if self.experience_reward and not self.experience_reward.is_void: raise ValueError( "journal is granting exp reward when it already has one.", str(self.id)) if Journal.objects.filter(game_attendance=self.game_attendance, is_downtime=True, is_valid=True, is_deleted=False).count() > 1: return exp_reward = ExperienceReward( rewarded_character=character, rewarded_player=character.player, type=EXP_JOURNAL, ) exp_reward.save() self.experience_reward = exp_reward self.save()
def grant_reward(self): if not self.is_valid: return if hasattr(self, "game_attendance") and self.game_attendance and \ hasattr(self.game_attendance, "attending_character") and self.game_attendance.attending_character: character = self.game_attendance.attending_character else: return journals_until_improvement = Journal.get_num_journals_until_improvement( character) if journals_until_improvement <= 0: reward = Reward(relevant_game=self.game_attendance.relevant_game, rewarded_character=character, rewarded_player=character.player, is_improvement=True, is_journal=True) reward.save() else: exp_reward = ExperienceReward( rewarded_character=character, rewarded_player=character.player, ) exp_reward.save() self.experience_reward = exp_reward self.save()
def alterPortedRewards(sender, **kwargs): # voids or grants gifts based on the value of kwarg num_gifts character = kwargs["character"] num_gifts = kwargs["num_gifts"] num_improvements = kwargs["num_improvements"] if num_gifts > 0: for x in range(num_gifts): reward = Reward(rewarded_player=character.player, rewarded_character=character, is_improvement=False, is_ported_reward=True) reward.save() elif num_gifts < 0: num_to_void = num_gifts * -1 gifts_to_void = character.reward_set \ .filter(is_void=False, is_improvement=False, is_ported_reward=True) \ .all()[:num_to_void] for gift in gifts_to_void: gift.mark_void() if num_improvements > 0: for x in range(num_improvements): reward = Reward(rewarded_player=character.player, rewarded_character=character, is_improvement=True, is_ported_reward=True) reward.save() elif num_improvements < 0: num_to_void = num_improvements * -1 improvements_to_void = character.reward_set \ .filter(is_void=False, is_improvement=True, is_ported_reward=True) \ .all()[:num_to_void] for improvement in improvements_to_void: improvement.mark_void()
def grantAssetGift(sender, **kwargs): reward = Reward(rewarded_player=kwargs["character"].player, rewarded_character=kwargs["character"], is_improvement=False, source_asset=kwargs["assetDetail"]) reward.save()
def reward_user(self, user): normal_reward = Reward( rewarded_character=self.char_full, rewarded_player=user, is_improvement=False, is_charon_coin=False, awarded_on=timezone.now(), ) normal_reward.save() gm_reward = Reward( rewarded_player=user, is_improvement=True, is_charon_coin=False, awarded_on=timezone.now(), ) gm_reward.save() coin_reward = Reward( rewarded_player=user, is_improvement=False, is_charon_coin=True, awarded_on=timezone.now(), ) coin_reward.save() coin_reward = Reward( rewarded_player=user, is_improvement=False, is_charon_coin=True, awarded_on=timezone.now(), ) coin_reward.save()