def create(self, request): attrs = self.flatten_dict(request.POST) if 'spell' not in attrs.keys(): return {'success': False, 'error': 'Spell not provided'} try: spell = int(attrs['spell']) spell = Spell.objects.get(pk=spell) except (ValueError, Spell.DoesNotExist): return {'success': False, 'error': 'No such spell'} # TODO refactor player = request.user.get_profile() if spell.price > player.coins.get('gold', 0): return {'success': False, 'error': 'Insufficient gold'} else: player.magic.add_spell(spell) scoring.score(player, None, 'buy-spell', external_id=spell.id, price=spell.price) SpellHistory.bought(player, spell) return {'success': True}
def bazaar_buy(request, spell): spell = get_object_or_404(Spell, pk=spell) player = request.user.get_profile() error, message = '','' if Bazaar.disabled(): error = _("Magic is disabled") elif spell.price > player.coins.get('gold', 0): error = _("Insufficient gold amount") elif spell.available == False: error = _("Spell is not available") elif spell.level_required > player.level_no: error = _("Level {level} is required to buy this spell").format(level=spell.level_required) else: player.magic.add_spell(spell) scoring.score(player, None, 'buy-spell', external_id=spell.id, price=spell.price) signal_msg = ugettext_noop('bought a spell') action_msg = 'spell-buy' signals.addActivity.send(sender=None, user_from=player, user_to=player, message=signal_msg, game=None, action=action_msg, public=False) SpellHistory.bought(player, spell) message = _("Successfully aquired") return bazaar(request, message=message, error=error)
def bazaar_buy(request, spell): spell = get_object_or_404(Spell, pk=spell) player = request.user.get_profile() error, message = '','' if Bazaar.disabled(): error = _("Magic is disabled") elif spell.price > player.coins.get('gold', 0): error = _("Insufficient gold amount") elif spell.available == False: error = _("Spell is not available") elif spell.level_required > player.level_no: error = _("Level {level} is required to buy this spell").format(level=spell.level_required) else: player.magic.add_spell(spell) scoring.score(player, None, 'buy-spell', external_id=spell.id, price=spell.price) signal_msg = ugettext_noop('bought a spell') action_msg = 'spell-buy' signals.addActivity.send(sender=None, user_from=player, user_to=player, message=signal_msg, game=None, action=action_msg, public=False) SpellHistory.bought(player, spell) message = _("Successfully acquired") if error: messages.error(request, error) if message: messages.success(request, message) return redirect('bazaar_home')
def bazaar_buy(request, spell): spell = get_object_or_404(Spell, pk=spell) player = request.user.get_profile() error, message = '','' if spell.price > player.coins.get('gold', 0): error = _("Insufficient gold amount") else: player.add_spell(spell) scoring.score(player, None, 'buy-spell', external_id=spell.id, price=spell.price) SpellHistory.bought(player, spell) message = _("Successfully aquired") return bazaar(request, message=message, error=error) # TODO: use django-flash """
def bazaar_buy(request, spell): spell = get_object_or_404(Spell, pk=spell) player = request.user.get_profile() error, message = '','' if spell.price > player.coins.get('gold', 0): error = _("Insufficient gold amount") elif spell.available == False: error = _("Spell is not available") elif spell.level_required > player.level_no: error = _("Level {level} is required to buy this spell").format(level=spell.level_required) else: player.add_spell(spell) scoring.score(player, None, 'buy-spell', external_id=spell.id, price=spell.price) SpellHistory.bought(player, spell) message = _("Successfully aquired") return bazaar(request, message=message, error=error)
def create(self, request): attrs = self.flatten_dict(request.POST) if 'spell' not in attrs.keys(): return {'success': False, 'error': 'Spell not provided'} try: spell = int(attrs['spell']) spell = Spell.objects.get(pk=spell) except (ValueError, Spell.DoesNotExist): return {'success': False, 'error': 'No such spell'} # TODO refactor player = request.user.get_profile() if spell.price > player.coins.get('gold', 0): return {'success': False, 'error': 'Insufficient gold'} else: player.add_spell(spell) scoring.score(player, None, 'buy-spell', external_id=spell.id, price=spell.price) SpellHistory.bought(player, spell) return {'success': True}
def bazaar_buy(request, spell): spell = get_object_or_404(Spell, pk=spell) player = request.user.get_profile() error, message = '', '' if spell.price > player.coins.get('gold', 0): error = _("Insufficient gold amount") elif spell.available == False: error = _("Spell is not available") elif spell.level_required > player.level_no: error = _("Level {level} is required to buy this spell").format( level=spell.level_required) else: player.add_spell(spell) scoring.score(player, None, 'buy-spell', external_id=spell.id, price=spell.price) SpellHistory.bought(player, spell) message = _("Successfully aquired") return bazaar(request, message=message, error=error)