Beispiel #1
0
void TournamentSR::players_post_actions() {
    /* client side */
    if (players_to_return.size()) {
        if (!server) {
            for (PlayersToReturn::iterator it = players_to_return.begin();
                it != players_to_return.end(); it++)
            {
                Player *p = *it;
                spawn_player(p);
            }
        }
        players_to_return.clear();
    }
}
		void environment::start()
		{
			end();

			m_time = 0;
			m_running = true;

			m_world.resize(settings::world_width, settings::world_height);
			m_world.generate(m_settings.seed());

			spawn_player(m_world.spawn() * point2(settings::cell_width, settings::cell_height));

			// ui
			tie_map();
			m_ui->deactivate("title");
			m_ui->activate("ingame");

			// make chest
			auto chest = m_factory->produce();
			chest->add_appearance('$', { 1, 1, 1 });
			chest->add_location({ 2, 2 });
			auto body = chest->add_body(250, 150);
			body->set_name("Iron chest");
			chest->add_container();
			m_terrain.add(*chest);

			auto ore = std::make_shared<body_component::item_type>();
			ore->add({ rl::effect::ore_power, 0x00, 10 });
			ore->add({ rl::effect::value, 0x00, 5 });
			ore->add({ rl::effect::weight, 0x00, 1 });
			ore->set_name("Copper ore");
			ore->set_tag("ore_copper");
			auto vein = m_factory->produce();
			vein->add_appearance('0');
			vein->add_location({ 3, 3 });
			vein->add_body();
			auto v = vein->add_resource();
			v->deposit(ore);
			m_terrain.add(*vein);

			auto anvil = m_factory->produce();
			anvil->add_appearance('t');
			anvil->add_location({ 3, 0 });
			anvil->add_body();
			anvil->add_container();
			m_terrain.add(*anvil);
		}