Something went wrong. Try again.
Perl game server for TLE Community
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101package Lacuna::DB::Result::Building::Development;
use Moose;use utf8;no warnings qw(uninitialized);extends 'Lacuna::DB::Result::Building';use List::Util qw(max);
sub subsidize_build_queue { my ($self, $building) = @_;
$self->body->tick;
if ($building) { $building->finish_upgrade; } else { foreach my $build (@{$self->body->builds}) { next unless $build->subsidizable; $build->finish_upgrade; } }}
sub calculate_subsidy { my ($self, $building) = @_;
my $cost = 0; if ($building) { $cost = 1 + # premium for targeting a single building max(1, int(($building->level + 1) / 3)); } else { foreach my $build (@{$self->body->builds}) { next unless $build->subsidizable; $cost += max(1, int(($build->level + 1) / 3)); } }
return $cost;}
sub format_build_queue { my ($self) = @_; my @queue; my $now = time; foreach my $build (@{$self->body->builds}) { push @queue, { building_id => $build->id, name => $build->name, to_level => ($build->level + 1), seconds_remaining => $build->upgrade_ends->epoch - $now, x => $build->x, y => $build->y, subsidy_cost => $self->calculate_subsidy($build), }; } return \@queue;}
around 'build_tags' => sub { my ($orig, $class) = @_; return ($orig->($class), qw(Infrastructure Construction));};
use constant controller_class => 'Lacuna::RPC::Building::Development';
use constant max_instances_per_planet => 1;
use constant university_prereq => 1;
use constant image => 'devel';
use constant name => 'Development Ministry';
use constant food_to_build => 78;
use constant energy_to_build => 77;
use constant ore_to_build => 77;
use constant water_to_build => 78;
use constant waste_to_build => 70;
use constant time_to_build => 150;
use constant food_consumption => 10;
use constant energy_consumption => 10;
use constant ore_consumption => 4;
use constant water_consumption => 10;
use constant waste_production => 1;
no Moose;__PACKAGE__->meta->make_immutable(inline_constructor => 0);