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); }