Beispiel #1
0
    def get_object(self, queryset=None):
        """ Hook to ensure object is owned by request.user. """
        profile = Profile.objects.filter(user=self.request.user).first()
        log_profile_activity(profile, constant.DECK_DELETE)
        obj = super().get_object()
        if not obj.profile == profile:
            raise Http404

        return obj
Beispiel #2
0
    def post(self, request, *args, **kwargs):
        form = self.get_form()
        if form.is_valid():
            self._create_deck(form, request)
            profile = Profile.objects.filter(user=self.request.user).first()
            log_profile_activity(profile, constant.DECK_CREATE)

            return self.form_valid(form)
        else:
            return self.form_invalid(form)
Beispiel #3
0
    def post(self, request, *args, **kwargs):
        form = self.get_form()
        if form.is_valid():
            profile = Profile.objects.filter(user=self.request.user).first()

            subcription = form.save(commit=False)
            subcription.profile = profile
            subcription.save()

            log_profile_activity(profile, constant.PROFILE_SUBSCRIBE)

            return self.form_valid(form)
        else:
            return self.form_invalid(form)
Beispiel #4
0
def combat_action(request):
    if request.method != 'POST':
        raise Http404()

    if 'winner' in request.POST:
        profile = Profile.objects.filter(user=request.user).first()
        log_profile_activity(profile, 'combat.%s' % request.POST['winner'])
        if request.POST['winner'] == 'player':
            log_profile_activity(profile, 'credit.gain.10')
            profile.credits += 10
            profile.save()

        return JsonResponse({})

    target_deck_cards = request.session.get('target_deck_cards')
    selected_target_card_id, selected_target_card = random.choice(
        list(target_deck_cards.items()))
    del target_deck_cards[selected_target_card_id]
    request.session['target_deck_cards'] = target_deck_cards

    profile_deck_cards = request.session.get('profile_deck_cards')
    selected_player_card_id = request.POST['player_card']
    selected_player_card = profile_deck_cards[selected_player_card_id]
    del profile_deck_cards[selected_player_card_id]
    request.session['profile_deck_cards'] = profile_deck_cards

    winner = "target_%s" % (selected_target_card['player_card'])
    looser = "profile_%s" % (selected_player_card['player_card'])
    player_state = 'looser'

    if selected_player_card['card_attack'] >= selected_target_card[
            'card_health']:
        winner = "profile_%s" % (selected_player_card['player_card'])
        looser = "target_%s" % (selected_target_card['player_card'])
        player_state = 'winner'

    print(
        "%s vs %s" %
        (selected_player_card['card_name'], selected_target_card['card_name']))
    return JsonResponse({
        'selected_player_card': selected_player_card,
        'selected_target_card': selected_target_card,
        'winner': winner,
        'looser': looser,
        'player_state': player_state
    })