Something went wrong. Try again.
Perl game server for TLE Community
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270use lib ('..','../lib');use Test::More tests => 25;use Test::Deep;use Data::Dumper;use DateTime;use 5.010;
use TestHelper;TestHelper->clear_all_test_empires;
my $tester = TestHelper->new->generate_test_empire;
my $session_id = $tester->session->id;
my $empire = $tester->empire;my $home = $empire->home_planet;my $db = Lacuna->db;my $tutorial = Lacuna::Tutorial->new(empire=>$empire);
is($tutorial->finish, 0, 'look at ui - not yet complete');$home->name(rand(1000000));is($tutorial->finish, 1, 'look at ui');
is($empire->tutorial_stage, 'get_food', 'get_food');my $building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new({ x => -5, y => -5, class => 'Lacuna::DB::Result::Building::Food::Malcud',});$home->build_building($building);$building->finish_upgrade;$home->tick;is($empire->tutorial_stage, 'drinking_water', 'drinking water');
$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new({ x => -4, y => -5, class => 'Lacuna::DB::Result::Building::Water::Purification',});$home->build_building($building);$building->finish_upgrade;$home->tick;is($empire->tutorial_stage, 'keep_the_lights_on', 'keep the lights on');
$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new({ x => -3, y => -5, class => 'Lacuna::DB::Result::Building::Energy::Geo',});$home->build_building($building);$building->finish_upgrade;$home->tick;is($empire->tutorial_stage, 'mine', 'mine');
$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new({ x => -2, y => -5, class => 'Lacuna::DB::Result::Building::Ore::Mine',});$home->build_building($building);$building->finish_upgrade;$home->tick;is($empire->tutorial_stage, 'more_resources', 'more resources');
$building = $home->command;$building->start_upgrade;$building->level( $building->level + 1 ); # extra upgrade level$building->finish_upgrade;$home->tick;is($empire->tutorial_stage,'university', 'university');
$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new({ x => -1, y => -5, class => 'Lacuna::DB::Result::Building::University',});$home->build_building($building);$building->finish_upgrade;$home->tick;is($empire->tutorial_stage, 'mission_command', 'mission_command');$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new({ x => -1, y => -5, class => 'Lacuna::DB::Result::Building::MissionCommand',});$home->build_building($building);$building->finish_upgrade;$home->tick;
is($empire->tutorial_stage, 'storage', 'university');
$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new({ x => 0, y => -5, class => 'Lacuna::DB::Result::Building::Ore::Storage',});$home->build_building($building);$building->finish_upgrade;$home->tick;$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new({ x => 0, y => -4, class => 'Lacuna::DB::Result::Building::Energy::Reserve',});$home->build_building($building);$building->finish_upgrade;$home->tick;$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new({ x => 0, y => -3, class => 'Lacuna::DB::Result::Building::Food::Reserve',});$home->build_building($building);$building->finish_upgrade;$home->tick;$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new({ x => 0, y => -2, class => 'Lacuna::DB::Result::Building::Water::Storage',});$home->build_building($building);$building->finish_upgrade;$home->tick;is($empire->tutorial_stage, 'fool', 'storage');
$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new({ x => 0, y => -1, class => 'Lacuna::DB::Result::Building::Food::Wheat', level => 2,});$home->build_building($building);$building->finish_upgrade;$home->tick;
my $future = DateTime->now->add(hours=>1);$empire->food_boost($future);$empire->water_boost($future);$empire->energy_boost($future);$empire->ore_boost($future);$home->tick;
$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new({ x => 1, y => -5, class => 'Lacuna::DB::Result::Building::Energy::Geo', level => 3,});$home->build_building($building);$building->finish_upgrade;$home->tick;is($tutorial->finish, 1, 'energy');
$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new({ x => 1, y => -4, class => 'Lacuna::DB::Result::Building::Water::Purification', level => 2,});$home->build_building($building);$building->finish_upgrade;$home->tick;$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new({ x => 1, y => -3, class => 'Lacuna::DB::Result::Building::Ore::Mine', level => 2,});$home->build_building($building);$building->finish_upgrade;$home->tick;is($empire->tutorial_stage, 'news', 'the 300');
$building =Lacuna->db->resultset('Lacuna::DB::Result::Building')->new({ x => -5, y => -5, class => 'Lacuna::DB::Result::Building::Network19', level => 0,});$home->build_building($building);$building->finish_upgrade;$home->tick;is($empire->tutorial_stage, 'rogue', 'news');
$empire->description('i rule');is($tutorial->finish, 1, 'rogue');
$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new({ x => 1, y => -2, class => 'Lacuna::DB::Result::Building::SpacePort',});$home->build_building($building);$building->finish_upgrade;$home->tick;is($empire->tutorial_stage, 'shipyard', 'spaceport');
$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new({ x => 1, y => -1, class => 'Lacuna::DB::Result::Building::Shipyard',});$home->build_building($building);$building->finish_upgrade;$home->tick;is($empire->tutorial_stage, 'pawn', 'shipyard');
$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new({ x => 1, y => 0, class => 'Lacuna::DB::Result::Building::Intelligence',});$home->build_building($building);$building->level( $building->level + 1 ); # extra upgrade level$building->finish_upgrade;$home->tick;is($empire->tutorial_stage, 'counter_spy', 'intelligence');
$building->train_spy;
my $spies = $building->get_spies;foreach (1..2) { my $spy = $spies->next; $spy->empire($empire); $spy->available_on(DateTime->now); $spy->task('Idle'); $spy->assign('Counter Espionage');}$home->tick;
is($empire->tutorial_stage, 'observatory', 'counter spy');
$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new({ x => 1, y => 1, class => 'Lacuna::DB::Result::Building::Observatory',});$home->build_building($building);$building->finish_upgrade;$home->tick;is($empire->tutorial_stage, 'explore', 'observatory');
$empire->add_observatory_probe($home->star_id, $home->id);$home->tick;
is($empire->tutorial_stage, 'the_end', 'explore');is($tutorial->finish, 1, 'the_end');is($tutorial->finish, 1, 'turing');is($tutorial->finish, 1, 'turing');is($tutorial->finish, 1, 'turing');
END { TestHelper->clear_all_test_empires;}