From 9cfaa5fffef557c0c9d52b95aaf742594c74b77d Mon Sep 17 00:00:00 2001 From: JT Smith Date: Sun, 16 May 2010 19:41:08 -0500 Subject: [PATCH 1/6] more tests passing --- lib/Lacuna/DB/Result/Building/Espionage.pm | 2 +- lib/Lacuna/DB/Result/Building/Security.pm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/Lacuna/DB/Result/Building/Espionage.pm b/lib/Lacuna/DB/Result/Building/Espionage.pm index 55b33209..8714d9df 100644 --- a/lib/Lacuna/DB/Result/Building/Espionage.pm +++ b/lib/Lacuna/DB/Result/Building/Espionage.pm @@ -43,7 +43,7 @@ use constant waste_production => 1; after finish_upgrade => sub { my $self = shift; my $offense = $self->level + $self->body->empire->species->deception_affinity; - Lacuna->db->resultset('spies')->search({from_body_id => $self->body_id})->update({offense=>$offense}); + Lacuna->db->resultset('Lacuna::DB::Result::Spies')->search({from_body_id => $self->body_id})->update({offense=>$offense}); }; diff --git a/lib/Lacuna/DB/Result/Building/Security.pm b/lib/Lacuna/DB/Result/Building/Security.pm index d08e8053..74d88a64 100644 --- a/lib/Lacuna/DB/Result/Building/Security.pm +++ b/lib/Lacuna/DB/Result/Building/Security.pm @@ -45,7 +45,7 @@ use constant happiness_consumption => 10; after finish_upgrade => sub { my $self = shift; my $defense = $self->level + $self->body->empire->species->deception_affinity; - Lacuna->db->resultset('spies')->search({from_body_id => $self->body_id})->update({defense=>$defense}); + Lacuna->db->resultset('Lacuna::DB::Result::Spies')->search({from_body_id => $self->body_id})->update({defense=>$defense}); }; no Moose; -- 2.51.2 From 2c41bcdfb4842da8011a9ce7adf52d8b4d554223 Mon Sep 17 00:00:00 2001 From: JT Smith Date: Sun, 16 May 2010 19:42:42 -0500 Subject: [PATCH 2/6] more tests passing --- t/Shipyard.t | 35 +---------------------------------- 1 file changed, 1 insertion(+), 34 deletions(-) diff --git a/t/Shipyard.t b/t/Shipyard.t index de9e498f..37ee84cf 100644 --- a/t/Shipyard.t +++ b/t/Shipyard.t @@ -6,7 +6,7 @@ use 5.010; use DateTime; use TestHelper; -my $tester = TestHelper->new->generate_test_empire; +my $tester = TestHelper->new->generate_test_empire->build_infrastructure; my $session_id = $tester->session->id; my $empire = $tester->empire; my $home = $empire->home_planet; @@ -15,43 +15,10 @@ my $command = $home->command; my $result; - -my $uni = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new({ - x => 0, - y => -1, - class => 'Lacuna::DB::Result::Building::University', - level => 2, -}); -$home->build_building($uni); -$uni->finish_upgrade; - -$home->ore_capacity(500000); -$home->energy_capacity(500000); -$home->food_capacity(500000); -$home->water_capacity(500000); -$home->bauxite_stored(500000); -$home->algae_stored(500000); -$home->energy_stored(500000); -$home->water_stored(500000); -$home->energy_hour(500000); -$home->algae_production_hour(500000); -$home->water_hour(500000); -$home->ore_hour(500000); -$home->needs_recalc(0); -$home->update; - - $result = $tester->post('spaceport', 'build', [$session_id, $home->id, 0, 1]); my $spaceport = $empire->get_building('Lacuna::DB::Result::Building::SpacePort',$result->{result}{building}{id}); $spaceport->finish_upgrade; -$home->energy_hour(500000); -$home->algae_production_hour(500000); -$home->water_hour(500000); -$home->ore_hour(500000); -$home->needs_recalc(0); -$home->update; - $result = $tester->post('shipyard', 'build', [$session_id, $home->id, 0, 2]); ok($result->{result}{building}{id}, "built a shipyard"); my $shipyard = $empire->get_building('Lacuna::DB::Result::Building::Shipyard',$result->{result}{building}{id}); -- 2.51.2 From 43a80314ceaf6af58aaff068aba92c3701f1202f Mon Sep 17 00:00:00 2001 From: JT Smith Date: Sun, 16 May 2010 19:50:06 -0500 Subject: [PATCH 3/6] more tests passing --- t/University.t | 37 +++++++++---------------------------- 1 file changed, 9 insertions(+), 28 deletions(-) diff --git a/t/University.t b/t/University.t index 973df336..cb355f02 100644 --- a/t/University.t +++ b/t/University.t @@ -1,48 +1,29 @@ use lib '../lib'; -use Test::More tests => 20; +use Test::More tests => 10; use Test::Deep; use Data::Dumper; use 5.010; use TestHelper; -my $tester = TestHelper->new->generate_test_empire; +my $tester = TestHelper->new->generate_test_empire->build_infrastructure; my $db = Lacuna->db; my $session_id = $tester->session->id; my $empire_id = $tester->empire->id; my $result; - -$result = $tester->post('university', 'build', [$session_id, $tester->empire->home_planet_id, 3, 3]); -my $uid = $result->{result}{building}{id}; - -$db->resultset('Lacuna::DB::Result::Building::University')->find($uid)->finish_upgrade; +my $university = $db->resultset('Lacuna::DB::Result::Building')->search({class=>'Lacuna::DB::Result::Building::University', body_id=>$tester->empire->home_planet_id})->single; +my $uid = $university->id; $result = $tester->post('university', 'view', [$session_id, $uid]); -is($result->{result}{building}{level}, 1, "made it to level 1"); +is($result->{result}{building}{level}, 6, "made it to level 6"); my $empire = $db->resultset('Lacuna::DB::Result::Empire')->find($empire_id); -is($empire->university_level, 1, 'empire university level was upgraded'); - -for my $level (2..10) { +is($empire->university_level, 6, 'empire university level was upgraded'); - my $home = $empire->home_planet; - $home->ore_capacity(50000000); - $home->energy_capacity(50000000); - $home->food_capacity(50000000); - $home->water_capacity(50000000); - $home->bauxite_stored(50000000); - $home->algae_stored(50000000); - $home->energy_stored(50000000); - $home->water_stored(50000000); - $home->energy_hour(50000000); - $home->algae_production_hour(50000000); - $home->water_hour(50000000); - $home->ore_hour(50000000); - $home->needs_recalc(0); - $home->update; +for my $level (7..10) { $result = $tester->post('university', 'upgrade', [$session_id, $uid]); - $db->resultset('Lacuna::DB::Result::Building::University')->find($uid)->finish_upgrade; - $db->cache->delete('upgrade_contention_lock', $uid); + $db->resultset('Lacuna::DB::Result::Building')->find($uid)->finish_upgrade; + Lacuna->cache->delete('upgrade_contention_lock', $uid); $result = $tester->post('university', 'view', [$session_id, $uid]); is($result->{result}{building}{level}, $level, "made it to level ".$level); -- 2.51.2 From 579e2490085aac9d703b56d9642cfa648818b155 Mon Sep 17 00:00:00 2001 From: JT Smith Date: Sun, 16 May 2010 19:58:18 -0500 Subject: [PATCH 4/6] more tests passing --- t/WasteRecycling.t | 33 ++++----------------------------- 1 file changed, 4 insertions(+), 29 deletions(-) diff --git a/t/WasteRecycling.t b/t/WasteRecycling.t index 8ac8c382..bfaf8c23 100644 --- a/t/WasteRecycling.t +++ b/t/WasteRecycling.t @@ -5,37 +5,13 @@ use Data::Dumper; use 5.010; use TestHelper; -my $tester = TestHelper->new->generate_test_empire; +my $tester = TestHelper->new->generate_test_empire->build_infrastructure; my $db = Lacuna->db; my $empire = $tester->empire; my $session_id = $tester->session->id; my $home = $empire->home_planet; - my $result; -my $uni = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new({ - x => 0, - y => -1, - class => 'Lacuna::DB::Result::Building::University', - level => 2, -}); -$home->build_building($uni); -$uni->finish_upgrade; - -$home->ore_capacity(5000); -$home->energy_capacity(5000); -$home->food_capacity(5000); -$home->water_capacity(5000); -$home->bauxite_stored(5000); -$home->algae_stored(5000); -$home->energy_stored(5000); -$home->water_stored(5000); -$home->energy_hour(5000); -$home->algae_production_hour(5000); -$home->water_hour(5000); -$home->ore_hour(5000); -$home->needs_recalc(0); -$home->update; $result = $tester->post('wasterecycling', 'build', [$session_id, $home->id, 3, 3]); @@ -46,10 +22,9 @@ $result = $tester->post('wasterecycling', 'recycle', [$session_id, $building->id is($result->{error}{code}, 1011, "can't recycle with waste you don't have"); -my $body = $building->body; -$body->algae_stored(20000); -$body->needs_recalc(0); -$body->update; +$home->waste_stored(500); +$home->waste_capacity(500); +$home->update; $result = $tester->post('wasterecycling', 'recycle', [$session_id, $building->id, 5,5,5]); cmp_ok($result->{result}{seconds_remaining}, '>', 0, "timer is started"); -- 2.51.2 From 2067d106676541d8c5c5081c3faba80946f97271 Mon Sep 17 00:00:00 2001 From: JT Smith Date: Sun, 16 May 2010 20:03:34 -0500 Subject: [PATCH 5/6] more tests passing --- t/long_running/Tick.t | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/t/long_running/Tick.t b/t/long_running/Tick.t index f2436327..8b1e80fa 100644 --- a/t/long_running/Tick.t +++ b/t/long_running/Tick.t @@ -1,4 +1,4 @@ -use lib '../lib'; +use lib ('..','../../lib'); use strict; use Test::More tests => 5; use Test::Deep; @@ -15,6 +15,7 @@ my $home = $empire->home_planet; my $db = Lacuna->db; +$home->bauxite_hour(1000); $home->ore_hour(1000); $home->ore_capacity(5000); $home->energy_hour(1000); -- 2.51.2 From e25546dfdd4efe281571b0cf8bb25592b232f62f Mon Sep 17 00:00:00 2001 From: JT Smith Date: Sun, 16 May 2010 20:19:15 -0500 Subject: [PATCH 6/6] all tests passing --- lib/Lacuna/DB/Result/Map/Body/Planet.pm | 3 +- lib/Lacuna/Tutorial.pm | 4 +-- t/long_running/Tutorial.t | 40 ++++++++++++------------- 3 files changed, 24 insertions(+), 23 deletions(-) diff --git a/lib/Lacuna/DB/Result/Map/Body/Planet.pm b/lib/Lacuna/DB/Result/Map/Body/Planet.pm index 18e8ec9f..ec9ebf5d 100644 --- a/lib/Lacuna/DB/Result/Map/Body/Planet.pm +++ b/lib/Lacuna/DB/Result/Map/Body/Planet.pm @@ -43,7 +43,7 @@ sub add_freebie { } # add it - $freebies->new({ + return $freebies->new({ body_id => $self->id, class => $class, level => $level, @@ -78,6 +78,7 @@ sub sanitize { $self->usable_as_starter(randint(1,9999)); } $self->update; + return $self; } around 'get_status' => sub { diff --git a/lib/Lacuna/Tutorial.pm b/lib/Lacuna/Tutorial.pm index 15ce359c..b1ddb746 100644 --- a/lib/Lacuna/Tutorial.pm +++ b/lib/Lacuna/Tutorial.pm @@ -426,8 +426,8 @@ sub the_300 { my $home = $empire->home_planet; if ($finish) { if ($home->ore_hour >= 50 && $home->water_hour >= 50) { - $home->add_freebie('Lacuna::DB::Result::Building::Ore::Storage', 2) - ->add_freebie('Lacuna::DB::Result::Building::Water::Storage', 2); + $home->add_freebie('Lacuna::DB::Result::Building::Ore::Storage', 2); + $home->add_freebie('Lacuna::DB::Result::Building::Water::Storage', 2); $self->start('news'); return undef; } diff --git a/t/long_running/Tutorial.t b/t/long_running/Tutorial.t index 186a3f31..51bacf4b 100644 --- a/t/long_running/Tutorial.t +++ b/t/long_running/Tutorial.t @@ -1,4 +1,4 @@ -use lib '../lib'; +use lib ('..','../../lib'); use Test::More tests => 24; use Test::Deep; use Data::Dumper; @@ -19,75 +19,75 @@ $home->name(rand(1000000)); is($tutorial->finish, 1, 'look at ui'); -my $building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new( +my $building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new({ x => 0, y => 1, class => 'Lacuna::DB::Result::Building::Food::Malcud', -); +}); $home->build_building($building); $building->finish_upgrade; is($tutorial->finish, 1, 'get food'); -$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new( +$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new({ x => 0, y => 3, class => 'Lacuna::DB::Result::Building::Water::Purification', -); +}); $home->build_building($building); $building->finish_upgrade; is($tutorial->finish, 1, 'drinking water'); -$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new( +$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new({ x => 0, y => 2, class => 'Lacuna::DB::Result::Building::Energy::Geo', -); +}); $home->build_building($building); $building->finish_upgrade; is($tutorial->finish, 1, 'keep the lights on'); -$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new( +$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new({ x => 0, y => 4, class => 'Lacuna::DB::Result::Building::Ore::Mine', -); +}); $home->build_building($building); $building->finish_upgrade; is($tutorial->finish, 1, 'mine'); -$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new( +$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new({ x => 0, y => 5, class => 'Lacuna::DB::Result::Building::University', -); +}); $home->build_building($building); $building->finish_upgrade; is($tutorial->finish, 1, 'university'); -$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new( +$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; -$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new( +$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; -$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new( +$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; $building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new({ @@ -100,12 +100,12 @@ $building->finish_upgrade; is($tutorial->finish, 1, 'storage'); -$building = Lacuna->db->resultset('Lacuna::DB::Result::Building')->new( +$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; @@ -216,7 +216,7 @@ $home->build_building($building); $building->finish_upgrade; is($tutorial->finish, 1, 'observatory'); -$empire->add_probe($home->star_id); +$empire->add_probe($home->star_id, $home->id); is($tutorial->finish, 1, 'explore'); is($tutorial->finish, 1, 'the_end'); is($tutorial->finish, 1, 'turing'); -- 2.51.2