From 242c412fe64ee62105a5c33ec1057cf598861ef3 Mon Sep 17 00:00:00 2001 From: Darin McBride Date: Tue, 13 Jan 2015 15:59:09 -0700 Subject: [PATCH] Cannot drain essentia from unhappy mines. --- lib/Lacuna/RPC/Building/EssentiaVein.pm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/Lacuna/RPC/Building/EssentiaVein.pm b/lib/Lacuna/RPC/Building/EssentiaVein.pm index 8089509a..308a3ea5 100644 --- a/lib/Lacuna/RPC/Building/EssentiaVein.pm +++ b/lib/Lacuna/RPC/Building/EssentiaVein.pm @@ -19,7 +19,9 @@ around view => sub { my $building = $self->get_building($empire, $building_id); my $out = $orig->($self, $empire, $building); - $out->{building}{drain_capable} = int($building->work_seconds_remaining() / (30 * 24 * 60 * 60)); + my $body = $building->body; + $out->{building}{drain_capable} = $body->happiness >= 0 ? + int($building->work_seconds_remaining() / (30 * 24 * 60 * 60)) : 0; return $out; }; @@ -29,6 +31,10 @@ sub drain { my $empire = $self->get_empire_by_session($session_id); my $building = $self->get_building($empire, $building_id); + my $body = $building->body; + confess [1010, "Cannot drain essentia from unhappy mines."] + unless $body->happiness >= 0; + $times ||= 1; my $days = $times * 30; -- 2.51.2