Beispiel #1
0
void tsignin::fillup(twindow& window)
{
	if (!group.signin().break_days) {
		return;
	}

	utils::string_map symbols;
	std::stringstream err;
	int coin = 0;
	int score = 200;

	symbols["score"] = tintegrate::generate_format(score, "red");
	symbols["do"] = tintegrate::generate_format(_("signin^Fill up"), "yellow");
	std::string message = vgettext2("Do you want to spend $score score to $do?", symbols);
	int res = gui2::show_message(disp_.video(), "", message, gui2::tmessage::yes_no_buttons);
	if (res == gui2::twindow::CANCEL) {
		return;
	}

	if (sum_score(group.coin(), group.score()) < score) {
		symbols.clear();
		symbols["coin"] = tintegrate::generate_format(coin, "red");
		symbols["score"] = tintegrate::generate_format(score, "red");
		err << vgettext2("Repertory is not enough to pay $coin coin and $score score. If lack one only, can exchange between coin and score.", symbols);
		gui2::show_message(disp_.video(), "", err.str());
		return;
	}

	http::membership m = http::signin(disp_, heros_, http::signin_tag_fillup);
	if (m.uid >= 0) {
		group.from_local_membership(disp_, heros_, m, false);
		refresh_signin_information(window);
	}
}
Beispiel #2
0
void texile::join(twindow& window)
{
	tlistbox& list = find_widget<tlistbox>(&window, "type_list", false);

	hero& h = heros_[selected_number_];
	int coin_income = 0, score_income = -1 * game_config::score_used_draw;
	
	const tgroup::tmember& m = group_.exile(h);

	std::stringstream strstr;
	utils::string_map symbols;

	if (sum_score(group_.coin(), group_.score()) < game_config::score_used_draw) {
		symbols["score"] = tintegrate::generate_format(game_config::score_used_draw, "red");
		symbols["do"] = tintegrate::generate_format(dsgettext("wesnoth-lib", "Join"), "yellow");
		std::string message = vgettext("wesnoth-lib", "Repertory is less than $score score, cannot $do.", symbols);
		gui2::show_message(disp_.video(), "", message);
		return;
	}
	symbols["score"] = tintegrate::generate_format(-1 * score_income, "red");
	symbols["do"] = tintegrate::generate_format(dsgettext("wesnoth-lib", "Join"), "yellow");
	strstr.str("");
	strstr << vgettext("wesnoth-lib", "Do you want to spend $score score to $do?", symbols) << "\n\n";
	symbols["name"] = tintegrate::generate_format(h.name(), "green");
	symbols["location"] = tintegrate::generate_format(dsgettext("wesnoth-lib", "member^Fix"), "yellow");
	strstr << vgettext("wesnoth-lib", "$name will put into $location.", symbols);
	int res = gui2::show_message(disp_.video(), "", strstr.str(), gui2::tmessage::yes_no_buttons);
	if (res == gui2::twindow::CANCEL) {
		return;
	}

	std::vector<std::pair<int, int> > m2;
	m2.push_back(std::make_pair(m.base->number_, m.level));
	http::membership member = http::exile(disp_, heros_, http::exile_tag_join, m2, coin_income, score_income);
	if (member.uid < 0) {
		return;
	}
	group_.from_local_membership(disp_, heros_, member, false);

	fill_exile_table(window, list.get_selected_row());
	dirty_ = true;
}