From c0d5687506d3ea6fc714ec65e93b4e0c8d87a977 Mon Sep 17 00:00:00 2001 From: Darin McBride Date: Tue, 14 Jul 2015 23:49:01 -0600 Subject: [PATCH] New medals: abandoned colony, fissure explosion, fissure repair --- bin/tick_fissures.pl | 1 + lib/Lacuna/DB/Result/Building/Permanent/Fissure.pm | 6 ++++++ lib/Lacuna/DB/Result/Medals.pm | 3 +++ lib/Lacuna/RPC/Body.pm | 1 + lib/Lacuna/Role/Ship/Arrive/SealFissure.pm | 4 +++- 5 files changed, 14 insertions(+), 1 deletion(-) diff --git a/bin/tick_fissures.pl b/bin/tick_fissures.pl index d8ac3090..123208e3 100644 --- a/bin/tick_fissures.pl +++ b/bin/tick_fissures.pl @@ -372,6 +372,7 @@ sub fissure_explode { params => [$body->name], ); } + $empire->add_medal('fissure_explosion'); # Send out N19 news about the lost colony. $body->add_news(100, sprintf('A huge ripple in space-time was felt, caused by the implosion of %s, millions feared dead.',$body->name)); $body->sanitize; diff --git a/lib/Lacuna/DB/Result/Building/Permanent/Fissure.pm b/lib/Lacuna/DB/Result/Building/Permanent/Fissure.pm index 07f748fe..5f5e195b 100644 --- a/lib/Lacuna/DB/Result/Building/Permanent/Fissure.pm +++ b/lib/Lacuna/DB/Result/Building/Permanent/Fissure.pm @@ -56,6 +56,12 @@ before 'can_downgrade' => sub { } }; +after 'demolish' => sub { + my $self = shift; + my $empire = $self->body->empire; + $empire->add_medal('fissure_repair'); +}; + before downgrade => sub { my $self = shift; my $body = $self->body; diff --git a/lib/Lacuna/DB/Result/Medals.pm b/lib/Lacuna/DB/Result/Medals.pm index 6798d4a2..b124b3d8 100644 --- a/lib/Lacuna/DB/Result/Medals.pm +++ b/lib/Lacuna/DB/Result/Medals.pm @@ -381,6 +381,9 @@ use constant MEDALS => { TournamentVictory => 'Won a tournament', '20Stars' => 'Won the Twenty Stars tournament', 'flipped' => 'Ran a successful insurrection', + abandoned_colony => 'Abandoned a Colony', + fissure_explosion => 'Suffered a Fissure Explosion on a Colony', + fissure_repair => 'Closed a Fissure', }; sub name { diff --git a/lib/Lacuna/RPC/Body.pm b/lib/Lacuna/RPC/Body.pm index 41e0af21..5995af96 100644 --- a/lib/Lacuna/RPC/Body.pm +++ b/lib/Lacuna/RPC/Body.pm @@ -49,6 +49,7 @@ sub abandon { confess [1017, 'The abandon has been delayed pending a parliamentary vote.']; } $body->abandon; + $empire->add_medal('abandoned_colony'); return $self->format_status($empire); } diff --git a/lib/Lacuna/Role/Ship/Arrive/SealFissure.pm b/lib/Lacuna/Role/Ship/Arrive/SealFissure.pm index 51a265f7..af8c55a7 100644 --- a/lib/Lacuna/Role/Ship/Arrive/SealFissure.pm +++ b/lib/Lacuna/Role/Ship/Arrive/SealFissure.pm @@ -65,11 +65,13 @@ after handle_arrival_procedures => sub { } if ($curr_lev < 1) { $fissure->delete; - $self->body->empire->send_predefined_message( + my $empire = $self->body->empire; + $empire->send_predefined_message( tags => ['Fissure', 'Alert'], filename => 'we_destroyed_a_fissure.txt', params => [$self->type_formatted, $body_hit->x, $body_hit->y, $body_hit->name ], ); + $empire->add_medal('fissure_repair'); } else { $fissure->level($curr_lev); -- 2.51.2