Exemplo n.º 1
0
def route_account_character_post():
	name = request.form.get('name', '', type=str)
	gender = request.form.get('gender', 0, type=int)
	vocation = request.form.get('vocation', 0, type=int)
	town = request.form.get('town', 1, type=int)
	error = False

	if len(name) < 4:
		flash('The name must be at least 4 characters long.', 'error')
		error = True

	if not CHAR_NAME_EXPR.match(name):
		flash('The name may only contain latin characters (A-Z, a-z and spaces).', 'error')
		error = True

	if len(name.split(' ')) > 3:
		flash('The name may only consist of 3 words.', 'error')
		error = True

	if gender not in NEW_CHARACTER.get('genders'):
		flash('The selected gender is not valid.', 'error')
		error = True

	if vocation not in NEW_CHARACTER.get('vocations'):
		flash('The selected vocation is not valid.', 'error')
		error = True

	if town not in NEW_CHARACTER.get('towns'):
		flash('The selected town is not valid.', 'error')
		error = True

	name = string.capwords(name)
	player = db.session().query(Player.id).filter(Player.name == name).first()
	if player:
		flash('The character name is already in use.', 'error')
		error = True

	if error:
		return redirect(url_for('route_account_character'))

	player = Player()
	player.name = name
	player.sex = gender
	player.vocation = vocation
	player.town_id = town
	player.account_id = current_user().id

	player.looktype = 136 if gender == 0 else 128
	player.lookhead = NEW_CHARACTER.get('outfit')[0]
	player.lookbody = NEW_CHARACTER.get('outfit')[1]
	player.looklegs = NEW_CHARACTER.get('outfit')[2]
	player.lookfeet = NEW_CHARACTER.get('outfit')[3]

	db.session().add(player)
	db.session().commit()

	flash('The character has been created.', 'success')

	return redirect(url_for('route_account_manage'))
Exemplo n.º 2
0
def route_account_character():
	return render_template(
		'account/character.htm', genders=NEW_CHARACTER.get('genders'),
		vocations=NEW_CHARACTER.get('vocations'), towns=NEW_CHARACTER.get('towns')
	)