Something went wrong. Try again.
Perl game server for TLE Community
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394package Lacuna::RPC::Building::Entertainment;
use Moose;use utf8;no warnings qw(uninitialized);extends 'Lacuna::RPC::Building';use URI::Encode qw(uri_encode);
sub app_url { return '/entertainment';}
sub model_class { return 'Lacuna::DB::Result::Building::EntertainmentDistrict';}
around 'view' => sub { my ($orig, $self, $session_id, $building_id) = @_; my $session = $self->get_session({session_id => $session_id, building_id => $building_id, skip_offline => 1 }); my $empire = $session->current_empire; my $building = $session->current_building; my $out = $orig->($self, $session, $building); $out->{ducks_quacked} = Lacuna->cache->get('ducks','quacked'); return $out;};
sub get_lottery_voting_options { my ($self, $session_id, $building_id) = @_; my $session = $self->get_session({session_id => $session_id, building_id => $building_id }); my $empire = $session->current_empire; my $building = $session->current_building;
if ($session->is_sitter) { confess [1015, 'Sitters cannot enter the lottery.']; } $session->check_captcha; my $cache = Lacuna->cache; my @list; my $config = Lacuna->config; my $server_url = $config->get('server_url'); foreach my $site (@{$config->get('voting_sites')}) { next if $cache->get($site->{url}, $empire->id); push @list, { url => $server_url.'entertainment/vote?session_id='.$session_id.'&building_id='.$building_id.'&site_url='.uri_encode($site->{url}, 1), name => $site->{name}, }; } return { options => \@list, status => $self->format_status($session, $building->body), };}
# no point in reinitialising this each time quack is called.my @quacks = ( 'quack', 'QUACK', 'Quack', 'Quack! Quack!', 'Quack! Quack! Quack!', 'Quack!!!', 'Quaaaaaack!', 'Q-U-A-C-K', ".(,)=\n~{#}~\n_|V|_", '|\__( o)>', '[kwak]', 'noun: the harsh, throaty cry of a duck or any similar sound.', " ,~~.\n ( 6 )-_,\n (\___ )=='-'\n \ . ) )\n \ `-' / \n~'`~'`~'`~'`~", " ,,,,,\n (o o)\n /. .\ \n (_____)\n : :\n ##O##\n ,,,: :,,,\n _)\ : : /(____\n{ \ / ___}\n \/) ((/\n (_______)\n : :\n : :\n / \ / \\n \"\"\" \"\"\"", "What's up, doc?", "I may quack like a duck and walk like a duck, but I'm really a rabbit in disguise!", "Rabbit season!",);
sub duck_quack { my ($self, $session_id, $building_id) = @_; my $session = $self->get_session({session_id => $session_id, building_id => $building_id }); my $empire = $session->current_empire; my $building = $session->current_building; Lacuna->cache->increment('ducks', 'quacked', 1, 60 * 60 * 24); return { status => $self->format_status($session, $building->body), quack => $quacks[ rand @quacks ], };}
__PACKAGE__->register_rpc_method_names(qw(duck_quack get_lottery_voting_options));
no Moose;__PACKAGE__->meta->make_immutable;