forked from OpenNeo/impress
Remove unused special_color
logic from Item
We used to use this to determine what color to show by default on the item page preview for, like, Maraquan-specific items. Now, we infer it from our actual customization data, rather than these heuristics! There's still a database field for `Item#manual_special_color_id`. We can still read and write this from the support UI, and Impress 2020 still slightly uses it from the homepage, so I'm not removing from the database right now.
This commit is contained in:
parent
6fdeffebf1
commit
1c36276865
1 changed files with 0 additions and 51 deletions
|
@ -25,8 +25,6 @@ class Item < ApplicationRecord
|
||||||
|
|
||||||
NCRarities = [0, 500]
|
NCRarities = [0, 500]
|
||||||
PAINTBRUSH_SET_DESCRIPTION = 'This item is part of a deluxe paint brush set!'
|
PAINTBRUSH_SET_DESCRIPTION = 'This item is part of a deluxe paint brush set!'
|
||||||
SPECIAL_COLOR_DESCRIPTION_REGEX =
|
|
||||||
/This item is only wearable by [a-zA-Z]+ painted ([a-zA-Z]+)\.|WARNING: This [a-zA-Z]+ can be worn by ([a-zA-Z]+) [a-zA-Z]+ ONLY!|If your Neopet is not painted ([a-zA-Z]+), it will not be able to wear this item\./
|
|
||||||
|
|
||||||
scope :newest, -> {
|
scope :newest, -> {
|
||||||
order(arel_table[:created_at].desc) if arel_table[:created_at]
|
order(arel_table[:created_at].desc) if arel_table[:created_at]
|
||||||
|
@ -306,55 +304,6 @@ class Item < ApplicationRecord
|
||||||
restricted_zones + occupied_zones
|
restricted_zones + occupied_zones
|
||||||
end
|
end
|
||||||
|
|
||||||
def special_color
|
|
||||||
@special_color ||= determine_special_color
|
|
||||||
end
|
|
||||||
|
|
||||||
def special_color_id
|
|
||||||
special_color.try(:id)
|
|
||||||
end
|
|
||||||
|
|
||||||
protected
|
|
||||||
def determine_special_color
|
|
||||||
I18n.with_locale(I18n.default_locale) do
|
|
||||||
# Rather than go find the special description in all locales, let's just
|
|
||||||
# run this logic in English.
|
|
||||||
if description.include?(PAINTBRUSH_SET_DESCRIPTION)
|
|
||||||
name_words = name.downcase.split
|
|
||||||
Color.nonstandard.each do |color|
|
|
||||||
return color if name_words.include?(color.name)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
match = description.match(SPECIAL_COLOR_DESCRIPTION_REGEX)
|
|
||||||
if match
|
|
||||||
# Since there are multiple formats in the one regex, there are multiple
|
|
||||||
# possible color name captures. So, take the first non-nil capture.
|
|
||||||
color = match.captures.detect(&:present?)
|
|
||||||
return Color.find_by_name(color.downcase)
|
|
||||||
end
|
|
||||||
|
|
||||||
# HACK: this should probably be a flag on the record instead of
|
|
||||||
# being hardcoded :P
|
|
||||||
if [71893, 76192, 76202, 77367, 77368, 77369, 77370].include?(id)
|
|
||||||
return Color.find_by_name('baby')
|
|
||||||
end
|
|
||||||
|
|
||||||
if [76198].include?(id)
|
|
||||||
return Color.find_by_name('mutant')
|
|
||||||
end
|
|
||||||
|
|
||||||
if [75372].include?(id)
|
|
||||||
return Color.find_by_name('maraquan')
|
|
||||||
end
|
|
||||||
|
|
||||||
if manual_special_color_id?
|
|
||||||
return Color.find(manual_special_color_id)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
public
|
|
||||||
|
|
||||||
def species_support_ids
|
def species_support_ids
|
||||||
@species_support_ids_array ||= read_attribute('species_support_ids').split(',').map(&:to_i) rescue nil
|
@species_support_ids_array ||= read_attribute('species_support_ids').split(',').map(&:to_i) rescue nil
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue