- page_title = params[:for] ? "Shopping List for \"#{params[:for]}\"" : "Shopping List" - title page_title %h1#title= page_title :markdown Here's a custom shopping list for exactly the items in your outfit! Have fun bringing your design to life!! - if @items[:nc_mall].present? %h2 NC Mall items :markdown These items are available in the NC Mall right now! You can buy them with Neocash, a special currency you can [purchase directly][nc] from Neopets or redeem via [gift cards][gc]. [nc]: https://secure.nc.neopets.com/get-neocash [gc]: https://secure.nc.neopets.com/nickcash-cards %table.item-list{"data-complexity": complexity_for(@items[:nc_mall])} %thead %tr %td %th.name-cell Total: #{nc_total_for @items_needed[:nc_mall]} NC (#{pluralize @items_needed[:nc_mall].size, "item"}) %td.actions-cell - if @items_needed[:nc_mall].present? = button_link_to "https://ncmall.neopets.com/", target: "_blank", data: {"action-kind": "bulk-nc-mall"} do = cart_icon alt: "" Buy all in NC Mall %tbody - @items[:nc_mall].each do |item| = render "item_list_row", item: do = button_link_to "https://ncmall.neopets.com/", target: "_blank" do = cart_icon alt: "" Buy (#{item.current_nc_price} NC) - if @items[:dyeworks].present? %h2 Dyeworks items :markdown These are recolored "Dyeworks" variants of items. Dyeworks is a game of chance: if you have the "base" item and a Dyeworks Hue Brew Potion, you can [combine them][dyeworks] to receive a random color variant. You keep both the new item *and* the base item. If you don't get the color you want, you can use another potion to try again. It's also common for users to exchange the variants they don't want via "NC Trading". Potions can be bought individually, or in bundles of 5 or 10. [dyeworks]: https://www.neopets.com/mall/dyeworks/ %table.item-list{"data-complexity": complexity_for(@items[:dyeworks])} %thead %tr %td.thumbnail-cell = image_tag "https://images.neopets.com/items/mall_80x80_cleaning.gif", alt: "Dyeworks Hue Brew Potion" %th.name-cell Total: #{dyeworks_nc_total_for @items_needed[:dyeworks]} NC + %span.price-breakdown{ title: "At least #{pluralize @items_needed[:dyeworks].size, 'potion'}, " + "average " + "#{dyeworks_average_num_potions_for @items_needed[:dyeworks]}, " + "could be more. 125 NC per potion, but cheaper in bundles." } ?? potions (~#{dyeworks_estimated_potions_cost_for @items_needed[:dyeworks]} NC) %td.actions-cell - if @items_needed[:dyeworks].present? = button_link_to "https://ncmall.neopets.com/", target: "_blank", data: {"action-kind": "bulk-nc-mall"} do = cart_icon alt: "" Buy all in NC Mall %tbody - @items[:dyeworks].each do |item| = render "item_list_row", item: do - base_item = item.dyeworks_base_item - content_for :subtitle, flush: true do = link_to base_item, target: "_blank" do #{probability item.dyeworks_odds} chance - if item.dyeworks_permanent? %span.dyeworks-timeframe{ title: "This recipe is NOT currently scheduled to be removed " + "from Dyeworks. It might not stay forever, but it's also " + "not part of a known limited-time event, like most " + "Dyeworks items are. (Thanks Owls team!)" } (Always available) - elsif item.dyeworks_limited_final_date.present? %span.dyeworks-timeframe{ title: "This recipe is part of a limited-time Dyeworks " + "event. The last day you can dye this is " + "#{item.dyeworks_limited_final_date.to_fs(:long)}. " + "(Thanks Owls team!)" } (Limited-time: #{item.dyeworks_limited_final_date.to_fs(:month_and_day)}) - elsif item.dyeworks_limited? %span.dyeworks-timeframe{ title: "This recipe is part of a limited-time Dyeworks " + "event, and is scheduled to be removed from the NC Mall " + "soon. (Thanks Owls team!)" } (Limited-time) = button_link_to "https://ncmall.neopets.com/", target: "_blank" do = cart_icon alt: "" Buy base (#{item.dyeworks_base_item.current_nc_price} NC) = button_link_to "NC Trades", item_trades_path(item, type: "offering"), target: "_blank", icon: search_icon - if @items[:np].present? %h2 Neopoint items :markdown These items can be purchased with Neopoints. For less-expensive items, check the [Shop Wizard][wiz] first. Otherwise, try the [Trading Post][tp] or [Auction Genie][ag]. Dress to Impress doesn't track Neopoint item prices, but other fansites do! [wiz]: https://www.neopets.com/shops/wizard.phtml [tp]: https://www.neopets.com/island/tradingpost.phtml?type=browse [ag]: https://www.neopets.com/genie.phtml %table.item-list{"data-complexity": complexity_for(@items[:np])} %thead %tr %td %th.name-cell{colspan: 2} Total: #{pluralize @items_needed[:np].size, "item"} %tbody - @items[:np].each do |item| = render "item_list_row", item: do = button_link_to "Shops", shop_wizard_url_for(item), target: "_blank", icon: search_icon = button_link_to "Trades", trading_post_url_for(item), target: "_blank", icon: search_icon - if @pb_items_by_color.present? %h2 Paint Brush items :markdown These items are part of a paint brush set. Once you paint your pet, these items will be semi-permanently added to your Closet, even if your pet changes color again! You can use this to mix-and-match styles for "cross-paint" outfits. - @pb_items_by_color.each do |color, items| - items_needed = @pb_items_needed_by_color[color] %table.item-list{ "data-group-type": "bundle", "data-group-owned": items.all?(&:owned?), "data-complexity": complexity_for(items), } %thead %tr %td.thumbnail-cell - if color&.pb_item_thumbnail_url? = image_tag color.pb_item_thumbnail_url, alt: "Item thumbnail for #{color.pb_item_name}" - elsif color = image_tag pet_type_image_url(@pb_color_pet_types[color], size: :face), srcset: ["#{pet_type_image_url(@pb_color_pet_types[color], size: :face_2x)} 2x"], alt: @pb_color_pet_types[color].human_name - else = image_tag "https://images.neopets.com/items/starter_red_pb.gif", alt: "Item thumbnail for Starter Red Paint Brush" %th - if color #{color.pb_item_name || color.name.humanize} - else Basic colors (#{pluralize items_needed.size, "item"}) %td.actions-cell - if color&.pb_item_name? = button_link_to "Shops", shop_wizard_url_for(color.pb_item_name), target: "_blank", icon: search_icon = button_link_to "Trades", trading_post_url_for(color.pb_item_name), target: "_blank", icon: search_icon - elsif color .special-color-explanation Get via Lab Ray, morphing potions, etc. - else .special-color-explanation Many colors, like Red, will grant these items. %tbody - items.each do |item| = render "item_list_row", item: - if @items[:other_nc].present? %h2 Neocash items (Capsules, events, retired, etc.) :markdown These items are part of the Neocash economy, but not directly for sale. Sometimes they're available in the [NC Mall][mall], via special bundles or events. Sometimes they're retired, and can only be obtained via gifts or trades. [mall]: https://ncmall.neopets.com/ - if @items[:other_nc].any?(&:nc_trade_value) :markdown The [Owls Value Guide][owls] often has more details about how to get these items, and how much they're usually worth in the NC Trading community. We've loaded their info here for you, too! Thanks, Owls team! [owls]: https://www.neopets.com/~owls %table.item-list{"data-complexity": complexity_for(@items[:other_nc])} %thead %td %th.name-cell{colspan: 2} Total: #{pluralize @items_needed[:other_nc].size, "item"} %tbody - @items[:other_nc].each do |item| = render "item_list_row", item: do - content_for :subtitle, flush: true do - if item.nc_trade_value.present? - if nc_trade_value_is_estimate(item.nc_trade_value) = link_to "https://www.neopets.com/~owls", class: "owls-info-link", target: "_blank", title: 'Owls keeps track of approximate "capsule" values of NC items for trading. Items with similar values can often be traded for one another. This is an estimate, not a rule!' do %span.owls-info-label [Owls] Estimated value: = nc_trade_value_estimate_text(item.nc_trade_value) - else = link_to "https://www.neopets.com/~owls", class: "owls-info-link", target: "_blank", title: "Owls keeps track of how to get certain special items, even when there isn't a clear NC trade estimate." do %span.owls-info-label [Owls] Trade info: #{item.nc_trade_value.value_text} = button_link_to "NC Trades", item_trades_path(item, type: "offering"), target: "_blank", icon: search_icon - content_for :stylesheets do = page_stylesheet_link_tag "items/sources"