From 066688b76f166a2c42041fe4bb2876243371c596 Mon Sep 17 00:00:00 2001 From: Mark Lemming Date: Mon, 12 Jan 2015 21:43:43 -0700 Subject: [PATCH] fix fix fix --- bin/lce_starterpacks.pl | 66 +++++++++++++++++++ lib/Lacuna/RPC/Building/SpacePort.pm | 30 +++++---- lib/Lacuna/Role/Ship/Arrive/DeployBleeder.pm | 8 +-- .../Ship/Arrive/DeploySmolderingCrater.pm | 10 +-- lib/Lacuna/Role/Ship/Arrive/GroupHome.pm | 23 ++++--- 5 files changed, 105 insertions(+), 32 deletions(-) create mode 100644 bin/lce_starterpacks.pl diff --git a/bin/lce_starterpacks.pl b/bin/lce_starterpacks.pl new file mode 100644 index 00000000..3208707b --- /dev/null +++ b/bin/lce_starterpacks.pl @@ -0,0 +1,66 @@ +use 5.010; +use strict; +use feature "switch"; +use lib '/data/Lacuna-Server/lib'; +use Lacuna::DB; +use Lacuna; +use Lacuna::Util qw(randint format_date); +use Getopt::Long; +use DateTime; +$|=1; +our $quiet; +our $trade_num = 6; +GetOptions( + 'quiet' => \$quiet, + 'tnum' => \$trade_num, +); + +out('Started'); +my $start = time; + +out('Loading DB'); +our $db = Lacuna->db; +my $now = DateTime->now; + +my $empire = +my $body_id = home world +out('Checking for existing trades from LCE'); + +my $trades = $db->resultset('Market')->search({ + body_id => $body_id, +}); + + +my $trades_needed = $trade_num - $trades->count; + +if ($trades_needed < 1) { + out('No Trades Needed'); +} +else { + out('Add enough smugglers to carry new trades'); + my @ships = $db->result('Ships')->search({ + }); + my $ships_needed = $trades_needed - scalar @ships; + for (1..$ships_needed) { + } + out('Adding '.$trades_needed.' Trades.'); + for (1..$trades_needed) { + } +} + +my $finish = time; +out('Finished'); +out((($finish - $start)/60)." minutes have elapsed"); + + +############### +## SUBROUTINES +############### + +sub out { + my ($message) = @_; + unless ($quiet) { + say format_date(DateTime->now), " ", $message; + } +} + diff --git a/lib/Lacuna/RPC/Building/SpacePort.pm b/lib/Lacuna/RPC/Building/SpacePort.pm index 0351591f..d5fdfa84 100644 --- a/lib/Lacuna/RPC/Building/SpacePort.pm +++ b/lib/Lacuna/RPC/Building/SpacePort.pm @@ -314,9 +314,10 @@ sub send_ship_types { berth_level => {'<=' => $max_berth }, }); # handle optional parameters - $ships_rs = $ships_rs->search({ speed => {'>=' => $type_param->{speed}}}) if defined $type_param->{speed}; - $ships_rs = $ships_rs->search({ stealth => {'>=' => $type_param->{stealth}}}) if defined $type_param->{stealth}; - $ships_rs = $ships_rs->search({ combat => {'>=' => $type_param->{combat}}}) if defined $type_param->{combat}; + $ships_rs = $ships_rs->search({ speed => $type_param->{speed}}) if defined $type_param->{speed}; + $ships_rs = $ships_rs->search({ stealth => $type_param->{stealth}}) if defined $type_param->{stealth}; + $ships_rs = $ships_rs->search({ combat => $type_param->{combat}}) if defined $type_param->{combat}; + $ships_rs = $ships_rs->search({ name => $type_param->{name}}) if defined $type_param->{name}; if ($ships_rs->count < $quantity) { confess [1009, "Cannot find $quantity of $type ships."]; } @@ -417,16 +418,19 @@ sub send_ship_types { my $transit_time = $arrival->subtract_datetime_absolute(DateTime->now)->seconds; my $fleet_speed = int( $distance / ($transit_time/3600) + 0.5); my $ag = $body->ships->new({ - type => "attack_group", - name => "Attack Group SP", - speed => $attack_group->{speed}, - combat => $attack_group->{combat}, - stealth => $attack_group->{stealth}, - hold_size => $attack_group->{hold_size}, - fleet_speed => $fleet_speed, - berth_level => 1, - body_id => $body->id, - task => 'Docked', + type => "attack_group", + name => "Attack Group SP", + shipyard_id => "23", + speed => $attack_group->{speed}, + combat => $attack_group->{combat}, + stealth => $attack_group->{stealth}, + hold_size => $attack_group->{hold_size}, + date_available => DateTime->now, + date_started => DateTime->now, + fleet_speed => $fleet_speed, + berth_level => 1, + body_id => $body->id, + task => 'Docked', number_of_docks => $attack_group->{number_of_docks}, })->insert; $ag->send(target => $target, arrival => $arrival, payload => $payload); diff --git a/lib/Lacuna/Role/Ship/Arrive/DeployBleeder.pm b/lib/Lacuna/Role/Ship/Arrive/DeployBleeder.pm index aeec5692..db03de06 100644 --- a/lib/Lacuna/Role/Ship/Arrive/DeployBleeder.pm +++ b/lib/Lacuna/Role/Ship/Arrive/DeployBleeder.pm @@ -38,12 +38,11 @@ after handle_arrival_procedures => sub { # deploy the bleeders my $body_attacked = $self->foreign_body; - my $deployed = 0; - for $deployed (1..$bleed_num) { + my $bleeders = 0; + for (1..$bleed_num) { my $body_attacked = $self->foreign_body; my ($x, $y) = eval{$body_attacked->find_free_space}; if ($@) { - $deployed--; last; } else { @@ -56,6 +55,7 @@ after handle_arrival_procedures => sub { $deployed->finish_upgrade; $body_attacked->needs_surface_refresh(1); $body_attacked->update; + $bleeders++; } } @@ -65,7 +65,7 @@ after handle_arrival_procedures => sub { tags => ['Attack','Alert'], filename => 'bleeder_deployed.txt', params => [ - $deployed, + $bleeders, $bleed_num, $body_attacked->x, $body_attacked->y, diff --git a/lib/Lacuna/Role/Ship/Arrive/DeploySmolderingCrater.pm b/lib/Lacuna/Role/Ship/Arrive/DeploySmolderingCrater.pm index 1e73ac82..ad7cfcf3 100644 --- a/lib/Lacuna/Role/Ship/Arrive/DeploySmolderingCrater.pm +++ b/lib/Lacuna/Role/Ship/Arrive/DeploySmolderingCrater.pm @@ -39,12 +39,11 @@ after handle_arrival_procedures => sub { # deploy the craters my $body_attacked = $self->foreign_body; - my $deployed = 0; - for $deployed (1..$thud_num) { + my $craters = 0; + for (1..$thud_num) { my $body_attacked = $self->foreign_body; my ($x, $y) = eval{$body_attacked->find_free_space}; if ($@) { - $deployed--; last; } else { @@ -57,6 +56,7 @@ after handle_arrival_procedures => sub { $deployed->start_work({},3600 * randint(24,168))->update; $body_attacked->needs_surface_refresh(1); $body_attacked->update; + $craters++; } } @@ -66,7 +66,7 @@ after handle_arrival_procedures => sub { tags => ['Attack','Alert'], filename => 'thud_hit_target.txt', params => [ - $deployed, + $craters, $thud_num, $body_attacked->x, $body_attacked->y, @@ -75,7 +75,7 @@ after handle_arrival_procedures => sub { } # notify attacked - unless ($body_attacked->empire_id && $body_attacked->empire->skip_attack_messages) { + unless ($craters > 0 and $body_attacked->empire_id && $body_attacked->empire->skip_attack_messages) { $body_attacked->empire->send_predefined_message( tags => ['Attack','Alert'], filename => 'thud_hit_us.txt', diff --git a/lib/Lacuna/Role/Ship/Arrive/GroupHome.pm b/lib/Lacuna/Role/Ship/Arrive/GroupHome.pm index 6aad9fa4..a2758c9b 100644 --- a/lib/Lacuna/Role/Ship/Arrive/GroupHome.pm +++ b/lib/Lacuna/Role/Ship/Arrive/GroupHome.pm @@ -14,16 +14,19 @@ after handle_arrival_procedures => sub { for my $key ( sort keys %{$payload->{fleet}}) { if ($payload->{fleet}->{$key}->{type} eq "sweeper") { for my $num (1..$payload->{fleet}->{$key}->{quantity}) { - my $ship = Lacuna->db->resultset('Ships')->new({type => "sweeper"}); - $ship->name($payload->{fleet}->{$key}->{name}); - $ship->body_id($self->body_id); - $ship->speed($payload->{fleet}->{$key}->{speed}); - $ship->combat($payload->{fleet}->{$key}->{combat}); - $ship->stealth($payload->{fleet}->{$key}->{stealth}); - $ship->hold_size(0); - $ship->date_available(DateTime->now); - $ship->date_started(DateTime->now); - $ship->insert; + my $ship = Lacuna->db->resultset('Ships')->new({ + type => "sweeper", + name => $payload->{fleet}->{$key}->{name}, + shipyard_id => 42, + speed => $payload->{fleet}->{$key}->{speed}, + combat => $payload->{fleet}->{$key}->{combat}, + stealth => $payload->{fleet}->{$key}->{stealth}, + hold_size => 0, + date_available => DateTime->now, + date_started => DateTime->now, + body_id => $self->body_id, + task => "Docked", + })->insert; } } } -- 2.54.0