From 3732d3c6704cb45e521ff77c2d36f566bf76f535 Mon Sep 17 00:00:00 2001 From: Mark Lemming Date: Tue, 19 Nov 2013 20:22:38 -0700 Subject: [PATCH] Limit production values to uni levels. --- lib/Lacuna/DB/Result/Building.pm | 4 +++- lib/Lacuna/DB/Result/Building/Module.pm | 9 +++++++++ lib/Lacuna/DB/Result/Spies.pm | 5 ++++- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/lib/Lacuna/DB/Result/Building.pm b/lib/Lacuna/DB/Result/Building.pm index a88b5d44..f2b2080e 100755 --- a/lib/Lacuna/DB/Result/Building.pm +++ b/lib/Lacuna/DB/Result/Building.pm @@ -131,7 +131,9 @@ use constant waste_storage => 0; sub production_hour { my $self = shift; return 0 unless $self->level; - my $production = (GROWTH ** ( $self->level - 1)); + my $prod_level = ($self->level > $self->body->empire->university_level + 1) ? + $self->body->empire->university_level + 1 : $self->level; + my $production = (GROWTH ** ( $prod_level - 1)); $production = ($production * $self->efficiency) / 100; return $production; } diff --git a/lib/Lacuna/DB/Result/Building/Module.pm b/lib/Lacuna/DB/Result/Building/Module.pm index 40a001c3..deacaa65 100644 --- a/lib/Lacuna/DB/Result/Building/Module.pm +++ b/lib/Lacuna/DB/Result/Building/Module.pm @@ -4,6 +4,7 @@ use Moose; use utf8; no warnings qw(uninitialized); extends 'Lacuna::DB::Result::Building'; +use Lacuna::Constants qw(GROWTH); around 'build_tags' => sub { my ($orig, $class) = @_; @@ -43,6 +44,14 @@ around spend_efficiency => sub { return $self; }; +sub production_hour { + my $self = shift; + return 0 unless $self->level; + my $production = (GROWTH ** ( $self->level - 1)); + $production = ($production * $self->efficiency) / 100; + return $production; +} + sub cost_to_upgrade { return { food => 0, diff --git a/lib/Lacuna/DB/Result/Spies.pm b/lib/Lacuna/DB/Result/Spies.pm index 76592f95..d7763acd 100644 --- a/lib/Lacuna/DB/Result/Spies.pm +++ b/lib/Lacuna/DB/Result/Spies.pm @@ -507,13 +507,16 @@ has home_field_advantage => ( my $body = $self->on_body; my $building = 'Security'; my $div = 2; + my $uni_level = $body->empire->university_level; if ($body->isa('Lacuna::DB::Result::Map::Body::Planet::Station')) { $building = 'Module::PoliceStation'; $div = 1; + $uni_level = 30; #This way, uni level doesn't matter with SS } my $hq = $body->get_building_of_class('Lacuna::DB::Result::Building::'.$building); if (defined $hq) { - return $hq->level * $hq->efficiency / $div; + my $bld_level = ($uni_level < $hq->level) ? $uni_level : $hq->level; + return $bld_level * $hq->efficiency / $div; } else { return 0; -- 2.54.0