diff --git a/lib/Lacuna/DB/Result/Building.pm b/lib/Lacuna/DB/Result/Building.pm index 781838fc..cbdfc485 100755 --- a/lib/Lacuna/DB/Result/Building.pm +++ b/lib/Lacuna/DB/Result/Building.pm @@ -845,9 +845,6 @@ sub finish_upgrade { if ($self->is_upgrading) { my $body = $self->body; - $self->level($self->level + 1); - $self->is_upgrading(0); - $self->update; $body->needs_recalc(1); $body->needs_surface_refresh(1); $body->update; @@ -855,12 +852,16 @@ sub finish_upgrade { $empire->add_medal('building'.$self->level); my $type = $self->controller_class; $type =~ s/^Lacuna::RPC::Building::(\w+)$/$1/; + + $self->reschedule_queue; + $self->level($self->level + 1); + $self->is_upgrading(0); + $self->update; $empire->add_medal($type); if ($self->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($self->level*4,"In %s ceremony, %s unveiled its newly augmented %s.", $levels{$self->level}, $empire->name, $self->name); } - $self->reschedule_queue; } Lacuna->cache->delete('upgrade_contention_lock', $self->id);