diff --git a/lib/Lacuna/DB/Result/Building/Module/Parliament.pm b/lib/Lacuna/DB/Result/Building/Module/Parliament.pm index 081392e1..0e432f0b 100644 --- a/lib/Lacuna/DB/Result/Building/Module/Parliament.pm +++ b/lib/Lacuna/DB/Result/Building/Module/Parliament.pm @@ -14,6 +14,10 @@ use constant ore_consumption => 110; use constant water_consumption => 90; use constant energy_consumption => 90; +before 'can_demolish' => sub { + confess [1010, 'You cannot demolish the Parliament. Use the abandon station function if you no longer want this station.']; +}; + sub propositions { my ($self) = @_; return Lacuna->db->resultset('Lacuna::DB::Result::Propositions')->search({station_id => $self->body->id}, {prefetch => 'station'}); diff --git a/lib/Lacuna/DB/Result/Building/Module/StationCommand.pm b/lib/Lacuna/DB/Result/Building/Module/StationCommand.pm index 29e7aa70..8f0dc922 100644 --- a/lib/Lacuna/DB/Result/Building/Module/StationCommand.pm +++ b/lib/Lacuna/DB/Result/Building/Module/StationCommand.pm @@ -14,6 +14,10 @@ use constant ore_consumption => 90; use constant water_consumption => 110; use constant energy_consumption => 110; +before 'can_demolish' => sub { + confess [1010, 'You cannot demolish the Station Command Center. Use the abandon station function if you no longer want this station.']; +}; + sub incoming_supply_chains { my ($self) = @_; diff --git a/lib/Lacuna/DB/Result/Building/PlanetaryCommand.pm b/lib/Lacuna/DB/Result/Building/PlanetaryCommand.pm index 8a9dae4a..3404b808 100644 --- a/lib/Lacuna/DB/Result/Building/PlanetaryCommand.pm +++ b/lib/Lacuna/DB/Result/Building/PlanetaryCommand.pm @@ -21,10 +21,6 @@ before 'can_demolish' => sub { confess [1010, 'You cannot demolish the Planetary Command Center. Use the abandon colony function if you no longer want this colony.']; }; -before 'can_demolish' => sub { - confess [1013, "You cannot demolish the Planetary Commmand Center."]; -}; - use constant image => 'command'; use constant name => 'Planetary Command Center'; diff --git a/lib/Lacuna/RPC/Building.pm b/lib/Lacuna/RPC/Building.pm index d9b9e49c..86d44451 100644 --- a/lib/Lacuna/RPC/Building.pm +++ b/lib/Lacuna/RPC/Building.pm @@ -18,14 +18,6 @@ sub to_app_with_url { return ($self->app_url => $self->to_app); } -sub _is_owner { - my ($self, $session, $building) = @_; - return - $session->current_empire->id == $building->body->empire->id || - $session->current_empire->id == $building->body->empire->alliance->leader_id - ; -} - sub upgrade { my ($self, $session_id, $building_id) = @_; my $session = $self->get_session({session_id => $session_id, building_id => $building_id}); @@ -227,7 +219,7 @@ sub demolish { unless ($body->parliament && $body->parliament->effective_level >= 2) { confess [1013, 'You need to have a level 2 Parliament to demolish a module.']; } - unless ($self->_is_owner($session, $building)) { + if ($building->class =~ /^Lacuna::DB::Result::Building::Module::/) { my $name = $building->name.' ('.$building->x.','.$building->y.')'; my $proposition = Lacuna->db->resultset('Lacuna::DB::Result::Propositions')->new({ type => 'DemolishModule', @@ -261,7 +253,7 @@ sub downgrade { unless ($body->parliament && $body->parliament->effective_level >= 2) { confess [1013, 'You need to have a level 2 Parliament to downgrade a module.']; } - unless ($self->_is_owner($session, $building)) { + if ($building->class =~ /^Lacuna::DB::Result::Building::Module::/) { my $name = $building->name.' ('.$building->x.','.$building->y.')'; my $proposition = Lacuna->db->resultset('Lacuna::DB::Result::Propositions')->new({ type => 'DowngradeModule', diff --git a/var/www/public/changes.txt b/var/www/public/changes.txt index d7f0c746..c18f2c1d 100644 --- a/var/www/public/changes.txt +++ b/var/www/public/changes.txt @@ -4,6 +4,7 @@ - UI : New captcha panel. - Fix: Resource bar bouncing quelled. - UI : Clean up on logout, should make logout/login more reliable. + - Fix: Slightly more red tape. 3.0919: - Add: Adding docker support.