update blueprints for weapon_stat_modifier serialization

This commit is contained in:
Justin Edmund 2025-12-30 22:47:47 -08:00
parent 7647f5f1d6
commit 62450304dc
5 changed files with 57 additions and 11 deletions

View file

@ -7,10 +7,28 @@ module Api
:created_at, :updated_at :created_at, :updated_at
field :ax, if: ->(_, obj, _) { obj.ax_modifier1.present? } do |obj| field :ax, if: ->(_, obj, _) { obj.ax_modifier1.present? } do |obj|
[ skills = []
{ modifier: obj.ax_modifier1, strength: obj.ax_strength1 }, if obj.ax_modifier1.present?
{ modifier: obj.ax_modifier2, strength: obj.ax_strength2 } skills << {
].compact_blank modifier: WeaponStatModifierBlueprint.render_as_hash(obj.ax_modifier1),
strength: obj.ax_strength1
}
end
if obj.ax_modifier2.present?
skills << {
modifier: WeaponStatModifierBlueprint.render_as_hash(obj.ax_modifier2),
strength: obj.ax_strength2
}
end
skills
end
field :befoulment, if: ->(_, obj, _) { obj.befoulment_modifier.present? } do |obj|
{
modifier: WeaponStatModifierBlueprint.render_as_hash(obj.befoulment_modifier),
strength: obj.befoulment_strength,
exorcism_level: obj.exorcism_level
}
end end
field :awakening, if: ->(_, obj, _) { obj.awakening.present? } do |obj| field :awakening, if: ->(_, obj, _) { obj.awakening.present? } do |obj|

View file

@ -15,11 +15,29 @@ module Api
end end
view :nested do view :nested do
field :ax, if: ->(_field_name, w, _options) { w.weapon.present? && w.weapon.ax } do |w| field :ax, if: ->(_field_name, w, _options) { w.ax_modifier1.present? } do |w|
[ skills = []
{ modifier: w.ax_modifier1, strength: w.ax_strength1 }, if w.ax_modifier1.present?
{ modifier: w.ax_modifier2, strength: w.ax_strength2 } skills << {
] modifier: WeaponStatModifierBlueprint.render_as_hash(w.ax_modifier1),
strength: w.ax_strength1
}
end
if w.ax_modifier2.present?
skills << {
modifier: WeaponStatModifierBlueprint.render_as_hash(w.ax_modifier2),
strength: w.ax_strength2
}
end
skills
end
field :befoulment, if: ->(_field_name, w, _options) { w.befoulment_modifier.present? } do |w|
{
modifier: WeaponStatModifierBlueprint.render_as_hash(w.befoulment_modifier),
strength: w.befoulment_strength,
exorcism_level: w.exorcism_level
}
end end
field :awakening, if: ->(_field_name, w, _options) { w.awakening.present? } do |w| field :awakening, if: ->(_field_name, w, _options) { w.awakening.present? } do |w|

View file

@ -27,7 +27,7 @@ module Api
}, },
has_weapon_keys: w.weapon_series.has_weapon_keys, has_weapon_keys: w.weapon_series.has_weapon_keys,
has_awakening: w.weapon_series.has_awakening, has_awakening: w.weapon_series.has_awakening,
has_ax_skills: w.weapon_series.has_ax_skills, augment_type: w.weapon_series.augment_type,
extra: w.weapon_series.extra, extra: w.weapon_series.extra,
element_changeable: w.weapon_series.element_changeable element_changeable: w.weapon_series.element_changeable
} }

View file

@ -11,7 +11,7 @@ module Api
end end
fields :slug, :order, :extra, :element_changeable, :has_weapon_keys, fields :slug, :order, :extra, :element_changeable, :has_weapon_keys,
:has_awakening, :has_ax_skills :has_awakening, :augment_type
view :full do view :full do
field :weapon_count do |ws| field :weapon_count do |ws|

View file

@ -0,0 +1,10 @@
# frozen_string_literal: true
module Api
module V1
class WeaponStatModifierBlueprint < Blueprinter::Base
identifier :id
fields :slug, :name_en, :name_jp, :category, :stat, :polarity, :suffix
end
end
end