def index(battle_id): em = EntityManager() battle = em.find_one_by_id('Battle', battle_id) if bottle.request.session.user_id not in [u._id for u in battle.users]: battle.users.append(em.find_one_by_id('User', bottle.request.session.user_id)) em.save('Battle', battle) for u in battle.users: u.userdata = em.find_one('UserData', {'user_id':u._id}) bottle.response.viewdata.update({'battle':battle, 'current_session_user_id':bottle.request.session.user_id}) return bottle.template('battle.tpl', vd=bottle.response.viewdata)
def common_view_data(): em = EntityManager() data = { 'logged_in_user': em.find_one_by_id('User', bottle.request.session.user_id) } return data
def delete_messages(messageIds, deleted_by_user_id): if messageIds: em = EntityManager() for id in messageIds: m = em.find_one_by_id('Message', id) if m and str(m.for_user_id) == str(deleted_by_user_id): em.remove_one('Message', id)
def index(user_id): em = EntityManager() challenged_user = em.find_one_by_id('User', user_id) b = Battle() b.users.append(challenged_user) b.users.append(em.find_one_by_id('User', bottle.request.session.user_id)) b.turn_of_user = challenged_user b.turn_of_user_index = 0 b = em.save('Battle', b) m = Message() m.for_user_id = str(challenged_user._id) m.type = 'challenge' m.data = {'battle_id':str(b._id)} em.save('Message', m) return bottle.redirect('/battle/'+ str(b._id))
def index(battle_id, user_id): em = EntityManager() attacking_user = em.find_one_by_id('User', bottle.request.session.user_id) battle = em.find_one_by_id('Battle', battle_id) if bottle.request.session.user_id == battle.turn_of_user._id and battle.ended is None: damage = random.sample(range(5), 1)[0] * 10 attacked_user = em.find_one_by_id('User', user_id) attacked_user_data = em.find_one('UserData', {'user_id':attacked_user._id}) attacked_user_data.health -= damage if attacked_user_data.health <= 0: attacked_user_data.health = 0 battle.ended = datetime.now() battle.loser = attacked_user em.save('UserData', attacked_user_data) battle.latest_action = '%s attacked %s and reduced their health by %s!' % (attacking_user.email, attacked_user.email, damage) battle.turn_of_user_index += 1 if battle.turn_of_user_index >= len(battle.users): battle.turn_of_user_index = 0 battle.turn_of_user = battle.users[battle.turn_of_user_index] em.save('Battle', battle) for u in battle.users: if str(u._id) != str(bottle.request.session.user_id): m = Message() m.for_user_id = str(u._id) m.type = 'reload' em.save('Message', m) return bottle.redirect('/battle/'+ str(battle_id))