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()
示例#2
0
 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()
示例#3
0
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()
示例#5
0
 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()