… | |
… | |
6 | platina => 50, |
6 | platina => 50, |
7 | royalty => 5000, |
7 | royalty => 5000, |
8 | ); |
8 | ); |
9 | |
9 | |
10 | my %aliases = ( |
10 | my %aliases = ( |
11 | platinum => 'platina', |
11 | platinum => 'platina', |
12 | royalties => 'royalty' |
12 | royalties => 'royalty', |
13 | ); |
13 | ); |
14 | |
14 | |
15 | sub find_rec { |
15 | sub find_rec { |
16 | my ($ob, $cb) = @_; |
16 | my ($ob, $cb) = @_; |
17 | |
17 | |
18 | my @unpaid; |
18 | my @unpaid; |
19 | for my $i ($ob->inv) { |
19 | for my $i ($ob->inv) { |
20 | push @unpaid, $i if $cb->($i); |
20 | push @unpaid, $i if $cb->($i); |
|
|
21 | |
21 | push @unpaid, find_unpaid ($i, $cb) |
22 | push @unpaid, find_unpaid ($i, $cb) |
22 | if $i->inv; |
23 | if $i->inv; |
23 | } |
24 | } |
24 | return @unpaid; |
25 | return @unpaid; |
25 | } |
26 | } |
… | |
… | |
93 | |
94 | |
94 | my $sells = cf::from_json $obs[0]->get_ob_key_value ('ext_reseller_sales'); |
95 | my $sells = cf::from_json $obs[0]->get_ob_key_value ('ext_reseller_sales'); |
95 | |
96 | |
96 | for my $item (find_unpaid ($who)) { |
97 | for my $item (find_unpaid ($who)) { |
97 | if ($item->get_ob_key_value ('ext_reseller_seller') eq $who->name) { |
98 | if ($item->get_ob_key_value ('ext_reseller_seller') eq $who->name) { |
98 | $item->set_flag (cf::FLAG_UNPAID, 0); |
99 | $item->flag (cf::FLAG_UNPAID, 0); |
99 | $item->remove; |
100 | $item->remove; |
100 | $item->insert_ob_in_ob ($who); |
101 | $item->insert_ob_in_ob ($who); |
101 | next; |
102 | next; |
102 | } |
103 | } |
103 | |
104 | |
… | |
… | |
112 | |
113 | |
113 | $self->apply_shop_mat ($who); |
114 | $self->apply_shop_mat ($who); |
114 | |
115 | |
115 | for my $item (find_traded ($who)) { |
116 | for my $item (find_traded ($who)) { |
116 | next if $item->flag (cf::FLAG_UNPAID); |
117 | next if $item->flag (cf::FLAG_UNPAID); |
117 | $item->set_value ($item->get_ob_key_value ('ext_reseller_orig_value')); |
118 | $item->value ($item->get_ob_key_value ('ext_reseller_orig_value')); |
118 | $item->set_ob_key_value (ext_reseller_seller => ''); |
119 | $item->set_ob_key_value (ext_reseller_seller => ''); |
119 | } |
120 | } |
120 | |
121 | |
121 | $obs[0]->set_ob_key_value (ext_reseller_sales => cf::to_json $sells); |
122 | $obs[0]->set_ob_key_value (ext_reseller_sales => cf::to_json $sells); |
122 | |
123 | |
… | |
… | |
186 | "The shopkeeper says: Ok, got the fee of " . cf::cost_string_from_value ($fee) . " for the item", |
187 | "The shopkeeper says: Ok, got the fee of " . cf::cost_string_from_value ($fee) . " for the item", |
187 | cf::NDI_BROWN |
188 | cf::NDI_BROWN |
188 | ); |
189 | ); |
189 | } |
190 | } |
190 | |
191 | |
191 | $what->set_value ($value); |
192 | $what->value ($value); |
192 | my $cost = $what->query_cost ($who, cf::F_BUY | cf::F_SHOP) / ($what->nrof || 1); |
193 | my $cost = $what->query_cost ($who, cf::F_BUY | cf::F_SHOP) / ($what->nrof || 1); |
193 | |
194 | |
194 | my $fact = 0; |
195 | my $fact = 0; |
195 | if ($cost) { |
196 | if ($cost) { |
196 | $fact = $value / $cost; |
197 | $fact = $value / $cost; |
197 | $what->set_value (cf::ceil ($value * $fact)); |
198 | $what->value (cf::ceil ($value * $fact)); |
198 | } |
199 | } |
199 | |
200 | |
200 | # warn "END VALUE: $value * $fact => " . $what->value . "\n"; |
201 | # warn "END VALUE: $value * $fact => " . $what->value . "\n"; |
201 | |
202 | |
202 | # my $cost = $what->query_cost ($who, cf::F_BUY | cf::F_SHOP) / $what->nrof; |
203 | # my $cost = $what->query_cost ($who, cf::F_BUY | cf::F_SHOP) / $what->nrof; |
… | |
… | |
210 | ); |
211 | ); |
211 | |
212 | |
212 | $what->set_ob_key_value (ext_reseller_seller => $who->name); |
213 | $what->set_ob_key_value (ext_reseller_seller => $who->name); |
213 | $what->set_ob_key_value (ext_reseller_orig_value => $orig_value); |
214 | $what->set_ob_key_value (ext_reseller_orig_value => $orig_value); |
214 | # warn "SET SELLER ON " . $what->name . " + " . $what->{seller}->[0] . "\n"; |
215 | # warn "SET SELLER ON " . $what->name . " + " . $what->{seller}->[0] . "\n"; |
215 | $what->set_custom_name ( |
|
|
216 | $what->name . " (by " . $who->name . ")" |
216 | $what->custom_name ($what->name . " (by " . $who->name . ")"); |
217 | ); |
|
|
218 | $what->set_flag (cf::FLAG_UNPAID, 1); |
217 | $what->flag (cf::FLAG_UNPAID, 1); |
219 | $what->insert_ob_in_map_at ($who->map, $who, cf::INS_BELOW_ORIGINATOR, $who->x, $who->y); |
218 | $what->insert_ob_in_map_at ($who->map, $who, cf::INS_BELOW_ORIGINATOR, $who->x, $who->y); |
220 | |
219 | |
221 | cf::override; |
220 | cf::override; |
222 | }, |
221 | }, |
223 | ; |
222 | ; |