From 249c16c79e06d68a9a20a1af17fdb14a709840e9 Mon Sep 17 00:00:00 2001 From: Darin McBride Date: Fri, 21 Feb 2014 12:46:22 -0700 Subject: [PATCH] Allow buildings to customise their upgrade messages in N19. Start with DeployedBleeders - those ceremonies aren't "magical". --- lib/Lacuna/DB/Result/Building.pm | 14 ++++++++++---- lib/Lacuna/DB/Result/Building/DeployedBleeder.pm | 9 +++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/lib/Lacuna/DB/Result/Building.pm b/lib/Lacuna/DB/Result/Building.pm index 7a5340f4..b744c896 100755 --- a/lib/Lacuna/DB/Result/Building.pm +++ b/lib/Lacuna/DB/Result/Building.pm @@ -909,10 +909,7 @@ sub finish_upgrade { my $type = $self->controller_class; $type =~ s/^Lacuna::RPC::Building::(\w+)$/$1/; $empire->add_medal($type); - if ($new_level % 5 == 0) { - my %levels = (5=>'a quiet',10=>'an extravagant',15=>'a lavish',20=>'a magnificent',25=>'a historic',30=>'a magical'); - $self->body->add_news($new_level*4,"In %s ceremony, %s unveiled its newly augmented %s.", $levels{$new_level}, $empire->name, $self->name); - } + $self->finish_upgrade_news($new_level, $empire); } $self->reschedule_queue; @@ -930,6 +927,15 @@ sub finish_upgrade { return $self; } +sub finish_upgrade_news +{ + my ($self, $new_level, $empire) = @_; + if ($new_level % 5 == 0) { + my %levels = (5=>'a quiet',10=>'an extravagant',15=>'a lavish',20=>'a magnificent',25=>'a historic',30=>'a magical'); + $self->body->add_news($new_level*4,"In %s ceremony, %s unveiled its newly augmented %s.", $levels{$new_level}, $empire->name, $self->name); + } +} + # Cancel the upgrade of any one build on the build queue # sub cancel_upgrade { diff --git a/lib/Lacuna/DB/Result/Building/DeployedBleeder.pm b/lib/Lacuna/DB/Result/Building/DeployedBleeder.pm index a868d9d6..3b8f6e87 100644 --- a/lib/Lacuna/DB/Result/Building/DeployedBleeder.pm +++ b/lib/Lacuna/DB/Result/Building/DeployedBleeder.pm @@ -40,6 +40,15 @@ after finish_upgrade => sub { } }; +sub finish_upgrade_news +{ + my ($self, $new_level, $empire) = @_; + if ($new_level % 5 == 0) { + my %levels = (5=>'shocked',10=>'stunned into silence',15=>'bewildered',20=>'dumbfounded',25=>'depressed',30=>'in great fear'); + $self->body->add_news($new_level*4,"Standing around %s, the citizens of %s watched as their %s grew on its own.", $levels{$new_level}, $empire->name, $self->name); + } +} + sub production_hour { my $self = shift; return 0 unless $self->level; -- 2.51.2