--- deliantra/server/ext/Jeweler.pm 2010/04/28 21:07:41 1.34 +++ deliantra/server/ext/Jeweler.pm 2010/05/05 08:19:06 1.37 @@ -23,7 +23,7 @@ our $CFG; sub load_config { - warn "loading jeweler config from $cf::DATADIR/jeweler\n"; + cf::trace "loading jeweler config from $cf::DATADIR/jeweler\n"; 0 < Coro::AIO::aio_load "$cf::DATADIR/jeweler", my $data or die "$cf::DATADIR/jeweler: $!"; @@ -251,7 +251,7 @@ package Jeweler::CauldronHandler; -use strict; +use common::sense; =head2 CauldronHandler @@ -369,8 +369,10 @@ =cut package Jeweler::Ingredients; + +use common::sense; + use Storable qw/dclone/; -use strict; =head2 Ingredients @@ -591,7 +593,9 @@ if ($do_remove) { my $rem = $costs->{$key}; $self->do_grep (sub { - if ($rem) { $rem = Jeweler::Util::remove ($_[0], $rem); } + if ($rem) { + $rem = Jeweler::Util::remove ($_[0], $rem); + } 1 }, @grepar); if ($rem > 0) { @@ -626,7 +630,8 @@ } package Jeweler::Object; -use strict; + +use common::sense; use POSIX; use List::Util qw/max min sum/; @@ -651,21 +656,21 @@ return undef; } +sub lvl2exp { + my $lvl = shift; + (cf::level_to_min_exp ($lvl) - cf::level_to_min_exp ($lvl - 1)) + / (20 + max ($lvl - 1, 0)) # 20 + level times making such a ring + # should get you to the rings level at least. +} + sub projected_exp { my ($self, $input_level) = @_; my $lvl = max ($self->power_to_level, 1); - my $exp = - (cf::level_to_min_exp ($lvl) - cf::level_to_min_exp ($lvl - 1)) - / (10 + max ($lvl - 1, 0)); # 10 + level times making such a ring - # should get you to the rings level at least. - - if (defined $input_level) { - my $subexp = - (cf::level_to_min_exp ($input_level) - - cf::level_to_min_exp ($input_level - 1)) - / (10 + max ($input_level - 1, 0)); # see above for comment + my $exp = lvl2exp ($lvl); + if (defined $input_level) { # in case we merge rings: + my $subexp = lvl2exp ($input_level); $exp -= $subexp; $exp = max ($exp, 0); @@ -855,7 +860,7 @@ my $obj = cf::object::new $self->{hash}->{arch}; - $obj->item_power (floor ($self->power_to_level / 3)); # there have to be strings attached! + $obj->item_power (floor ($self->power_to_level / 5)); # there have to be strings attached! $obj->face ($self->{hash}{face}); @@ -1108,7 +1113,7 @@ package Jeweler::Util; -use strict; +use common::sense; =head2 Util @@ -1125,8 +1130,8 @@ sub remove { my ($obj, $nrof) = @_; - - my $c = $obj->nrof || 1; + + my $c = $obj->number_of; my $r = $c > $nrof ? 0 : $nrof - $c; $obj->decrease (defined ($nrof) ? $nrof : ($obj->nrof || 1));