… | |
… | |
24 | return @unpaid; |
24 | return @unpaid; |
25 | } |
25 | } |
26 | |
26 | |
27 | sub find_unpaid { |
27 | sub find_unpaid { |
28 | my ($ob) = @_; |
28 | my ($ob) = @_; |
29 | my @r = find_rec ($ob, sub { $_[0]->get_flag (cf::FLAG_UNPAID) }); |
29 | my @r = find_rec ($ob, sub { $_[0]->flag (cf::FLAG_UNPAID) }); |
30 | return @r; |
30 | return @r; |
31 | } |
31 | } |
32 | |
32 | |
33 | sub find_traded { |
33 | sub find_traded { |
34 | my ($ob) = @_; |
34 | my ($ob) = @_; |
… | |
… | |
111 | } |
111 | } |
112 | |
112 | |
113 | $self->apply_shop_mat ($who); |
113 | $self->apply_shop_mat ($who); |
114 | |
114 | |
115 | for my $item (find_traded ($who)) { |
115 | for my $item (find_traded ($who)) { |
116 | next if $item->get_flag (cf::FLAG_UNPAID); |
116 | next if $item->flag (cf::FLAG_UNPAID); |
117 | $item->set_value ($item->get_ob_key_value ('ext_reseller_orig_value')); |
117 | $item->set_value ($item->get_ob_key_value ('ext_reseller_orig_value')); |
118 | $item->set_ob_key_value (ext_reseller_seller => ''); |
118 | $item->set_ob_key_value (ext_reseller_seller => ''); |
119 | } |
119 | } |
120 | |
120 | |
121 | $obs[0]->set_ob_key_value (ext_reseller_sales => cf::to_json $sells); |
121 | $obs[0]->set_ob_key_value (ext_reseller_sales => cf::to_json $sells); |
|
|
122 | |
|
|
123 | cf::override; |
122 | }, |
124 | }, |
123 | ; |
125 | ; |
124 | |
126 | |
125 | cf::register_attachment "reseller_floor", |
127 | cf::register_attachment "reseller_floor", |
126 | on_drop_on => sub { |
128 | on_drop_on => sub { |
127 | my ($on, $what, $who) = @_; |
129 | my ($on, $what, $who) = @_; |
128 | my $name = $what->custom_name; |
130 | my $name = $what->custom_name; |
129 | |
131 | |
130 | return if $what->get_flag (cf::FLAG_UNPAID); |
132 | return if $what->flag (cf::FLAG_UNPAID); |
131 | |
133 | |
132 | if ($what->type == cf::MONEY) { |
134 | if ($what->type == cf::MONEY) { |
133 | $who->message ("The shopkeeper says: Sorry, you can't sell money here.", cf::NDI_BROWN); |
135 | $who->message ("The shopkeeper says: Sorry, you can't sell money here.", cf::NDI_BROWN); |
134 | $what->insert_ob_in_ob ($who); |
136 | $what->insert_ob_in_ob ($who); |
135 | return cf::override; |
137 | return cf::override; |
136 | } |
138 | } |
137 | |
139 | |
138 | if (!$what->get_flag (cf::FLAG_IDENTIFIED) && $what->need_identify) { |
140 | if (!$what->flag (cf::FLAG_IDENTIFIED) && $what->need_identify) { |
139 | $who->message ("The shopkeeper says: Sorry, you can't sell unidentified stuff here.", cf::NDI_BROWN); |
141 | $who->message ("The shopkeeper says: Sorry, you can't sell unidentified stuff here.", cf::NDI_BROWN); |
140 | $what->insert_ob_in_ob ($who); |
142 | $what->insert_ob_in_ob ($who); |
141 | return cf::override; |
143 | return cf::override; |
142 | } |
144 | } |
143 | |
145 | |